Mat*_*ard 6 javascript selenium
Selenium对通过xpath在页面中查找元素提供了很好的支持
selenium.isElementPresent("//textarea")
在ajax页面中,您可以使用waitForCondition在页面上等待,直到出现某些内容
selenium.waitForCondition("some_javascript_boolean_test_as_a_string", "5000")
我的困难是,我似乎无法使用xpath支持进行布尔测试.document.getElementById似乎工作正常,但selenium.isElementPresent没有.
有没有简单的方法从waitForCondition的第一个参数中访问selenium的xpath元素查找功能?
小智 8
更直接的方法是:
selenium.waitForCondition("selenium.isElementPresent(\"xpath=//*[@id='element_id_here']/ul\");", time_out_here);
Run Code Online (Sandbox Code Playgroud)
小智 5
你可以这样做:
selenium.waitForCondition(
"var x = selenium.browserbot.findElementOrNull('elementIdOrXPathExpression');"
+ "x != null && x.style.display == 'none';", "5000");
Run Code Online (Sandbox Code Playgroud)
waitForCondition只是将最后一个js表达式结果计算为布尔值,从而允许您编写复杂的测试(如此处所示).例如,我们也使用这种技术来测试jQuery AJAX是否已经完成执行.
唯一的缺点是你现在也依赖于browserbot和更低级别的核心js API.
如果你想通过 id 选择一个元素,最简单的就是使用直接的 Selenese:
isElementPresent("textarea")
Run Code Online (Sandbox Code Playgroud)
如果你坚持使用 xpath 你可能不得不使用
isElementPresent("//*[@id='textarea']")
Run Code Online (Sandbox Code Playgroud)
或者
isElementPresent("//id('textarea')")
Run Code Online (Sandbox Code Playgroud)
(id函数可能不跨浏览器兼容)
如果这没有帮助,您的 html 文档也可能存在导致这种情况发生的结构问题。运行 html 验证器(如html 验证器)来检查页面上的嵌套问题和类似问题。
| 归档时间: |
|
| 查看次数: |
15176 次 |
| 最近记录: |