jquery - 无法定位元素,selenium 2.39 是否支持 DOJO 应用程序?

标签 jquery html selenium dojo

我正在尝试使用 selenium 2.39 版本自动化网页。 问题是我无法单击“加号和减号”控件。我收到以下错误:-

无法定位元素:{"method":"xpath","selector":"//*[@id='dijit__TreeNode_1']/div[1]/img"} 命令持续时间或超时:31.12 秒 有关此错误的文档,请访问:http://seleniumhq.org/exceptions/no_such_element.html

我尝试通过提供默认的 xpath 并创建了唯一的 xpath 但没有任何效果,我尝试了以下

1)//*[@id='dijit__TreeNode_1']/div[1]/img =>(默认) 2)//img[@src='Dojo/dojo/resources/blank.gif'][@data-dojo-attach-point='expandNode'] 3)//img[@src='Dojo/dojo/resources/blank.gif'][@role='presentation'][@class='dijitTreeExpando dijitTreeExpandoOpened'][@data-dojo-attach-point='expandoNode ']

我只是复制那部分HTML内容

-

任何人都可以建议任何其他替代方案。 我还在 HTML 内容中看到一些属性,如“data-dojo-attach-event”,自从它是 Dojo 应用程序以来,是否在 selenium 中未检测到该元素? 请分享您的反馈

最佳答案

到目前为止,我已经使用 Selenium 测试了几个 Dojo 网络应用程序,没有出现任何问题。 Selenium 应该独立于前端框架工作,但您必须正确使用它。

可能首先要检查的一些事情:

  1. 您是否正在等待页面加载和小部件被解析?
  2. 给定的 XPath 选择器在浏览器中使用时是否有效?我通常使用 Google Chrome 开发者工具来查找 XPath(通过右键单击 DOM 节点,您可以选择复制 XPath)。如果我没记错的话,还有一个 Firebug 插件可以通过 XPath 查询查找 DOM 节点。

如果您没有看到很多 Dojo 属性,那么第一点可能是问题所在。当页面未加载 + 解析时,它将无法找到 DOM 节点(但我想它应该能够在半分钟内找到它们)。

例如,要等待元素(使用 WebDriver)加载,您可以使用:

new WebDriverWait(driver, 10).until(ExpectedConditions.presenceOfElementLocated(By.id("myId")));

关于jquery - 无法定位元素,selenium 2.39 是否支持 DOJO 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21599632/

相关文章:

python-3.x - 如何使用 selenium python 从 youtube 获取视频链接

javascript - Zend Controller 未从 Jquery/ajax 接收数据

javascript - 如何从下面的代码片段加载 jquery?

jquery - 新添加的元素上的 .fadeIn()

html - HTML 样式属性与直接将属性放入标签之间的核心区别是什么?

python - Selenium Python : doesn't print the elements text

java - 带有 Replace <br> 标签的 WebDriver getText() 方法

javascript - 如何用 Javascript 列表中的值替换对象中的值?

javascript - 带有 JQuery 的简单 JavaScript 计算器

javascript - Bootstrap : Show modal window on image click in a loop