I'm writing a document for a developer at my company who will be working on a web app. Here's the advice I have for him so far (below). Can any of you think of more that I can add? Not sure which tool we'll be using, but Selenium and WatiN are strong contenders.
1. Where there are AJAX-heavy pages, especially when they have a big range of times to finish loading, help QA with hidden elements or JavaScript variables to indicate when the relevant AJAX piece (e.g. a data table is done loading)
2. Web elements should be:
a. Uniquely identifiable - Selenium prefers id (fastest for looking up elements)
b. Ideally, human-friendly, e.g. firstName instead of input82347
3. Favor standard web elements like <input> over many layers of nested <div> for the UI
4. Class names and other element attributes should not be repeated unless it makes sense, e.g. don't use the same class name for functionally different components (cheesy example: both <tr> and <td> having the exact same class name)
5. Selenium doesn't like compound class names (e.g. classname="classPart1 classpart2")
- Where there are AJAX-heavy pages, especially when they have a big range of times to finish loading, help QA with hidden elements or JavaScript variables to indicate when the relevant AJAX piece (e.g. a data table is done loading)
- Web elements should be:
- a. Uniquely identifiable - Selenium prefers id (fastest for looking up elements)
- b. Ideally, human-friendly, e.g. firstName instead of input82347
- Favor standard web elements like
<input>
over many layers of nested<div>
for the UI - Class names and other element attributes should not be repeated unless it makes sense, e.g. don't use the same class name for functionally different components (cheesy example: both
<tr>
and<td>
having the exact same class name) - Selenium doesn't like compound class names (e.g.
classname="classPart1 classpart2"
)