Page History
...
Issue | Potential fix | Remark |
---|---|---|
Element cannot be found although it's there | waitUntil methods. | querying fro an element (AbstractMagnoliaUITest#getElementByPath(By)) will explicitly try for 5 seconds - if the test triggers a long running action (e.g. activation) this can take even longer so we might have to add an additional, explicit delay |
Element is found although it should be gone | waitUntil methods. | unlike in the case where we check for existence of an element we don't have any implicit or explicit delay here - if the element needs some time to go away (e.g. Overlay fadeout) we have to add an explicit delay |
Input field value cannot be queried with xpath | dont use xpath | input[@class = 'classname' and @value = 'form input...'] could be changed to input[@class = 'classname] and use WebElement.getAttribute("value") to query the input value. |
Form validation fails, even if fields are properly entered | ensure blur / change | after filling an input with sendKeys, one should explicitly blur the field - i.e. click anywhere else - and allow some time for the change event to occur. Only then, pressing 'save changes' will be properly aware of the modifications. |
Getting another element instead of the expected one | scope XPath queries | making dead simple queries like //input[@class='v-textfield'] should be carefully considered, there may be more elements of same kind (inputs, buttons) currently loaded in the UI. Try to scope selectors at least to subApp level. |
Querying for descendent elements | use .// XPath prefix | invoking parent.findElement(By.xpath("//something")) doesn't query only for sub-elements of parent. To evaluate an XPath expression relative to parent WebElement, one needs to use the .// prefix instead. |
If you find it hard to create XPath queries, you might find the following helpful:
Firefox console can evaluate XPath expressions, through the$x()
functionFirebug + FirePath (depending on Firebug), which makes it easy to test xpath statementsFirefox XPath Checker extension
If writing an XPath for the element you're looking is hard, XPath should probably not be used for this case.
Screenshots of each stage of the test
...
Overview
Content Tools