【问题标题】:Unable to locate element ,Will selenium 2.39 support DOJO Application?无法定位元素,selenium 2.39 是否支持 DOJO 应用程序?
【发布时间】:2014-03-03 04:55:31
【问题描述】:

我正在尝试使用 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 中没有检测到该元素? 请分享您的反馈意见

【问题讨论】:

    标签: jquery html selenium dojo


    【解决方案1】:

    到目前为止,我已经使用 Selenium 测试了几个 Dojo Web 应用程序,没有出现任何问题。 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")));
    

    【讨论】:

    • 确实,我也这样做,但我也等待加载特定元素。我也用我做的其他事情编辑了我的答案。还要确保 XPath 是正确的。您还可以尝试增加步骤之间的时间,这样更容易验证浏览器中发生的情况。
    • 1)我在我的代码中给出了这样的超时,所以我认为页面加载不是问题。 2)我选择的元素在萤火虫中显示的默认xpath在XPATH检查器中显示为其他内容。就像我的“加减控制”的xpath id是“//*[@id='dijit__TreeNode_1']/div[ 1]/img”,但在 XPATH 检查器中检查时相同的 id 显示为“1”。所以有什么建议
    猜你喜欢
    • 1970-01-01
    • 2018-02-14
    • 2015-09-19
    • 2020-12-29
    • 2022-01-06
    • 2021-06-21
    • 1970-01-01
    相关资源
    最近更新 更多