【发布时间】:2017-09-18 11:15:24
【问题描述】:
这是一个奇怪的问题(对我来说),我无法理解。
我有一个应用程序,我用 Selenium IDE 记录了一个基本测试并将其导出,并试图使代码更健壮。我遇到了这个元素的问题:
<input class=" " id="P400_ADD_MEDIUM_BUT" onclick="void(0);" type="button" value="Add Emission">
它应该相当简单,它有一个 id,所以最初我想我会用它来定位元素并单击它:
driver.findElement(By.id("P400_ADD_MEDIUM_BUT")).click();
当我观看测试运行时,按钮突出显示为蓝色(此应用程序有两个阶段的蓝色,当鼠标按钮按下时为深蓝色,当鼠标松开时为浅蓝色) - 我看到的颜色是浅蓝色 - 但是,什么都没有发生(应该会出现一个弹出窗口。)
我尝试将其更改为 XPath 并使用以下内容: //输入[@id='P400_ADD_MEDIUM_BUT']
driver.findElement(By.xpath("//input[@id='P400_ADD_MEDIUM_BUT']")).click();
但还是一样的结果。 我在 IDE 中播放了录制的脚本,效果很好。我应该提到测试必须在 IE 中运行(它是一个内部应用程序,IE 是内部使用的唯一浏览器) - 但我很难过。
IE 是 11,最新的 selenium 和 IE 驱动程序。
有人有什么想法吗?
【问题讨论】:
-
当您刷新页面时,您的
id属性值正在发生变化? -
id 保持不变 - 我已经刷新并检查了前后,这条线永远不会改变。
-
你能分享包含这个按钮的部分的html吗?您还应该分享确切的错误,不可见/不可点击/未找到或什么样的错误,该错误对于检测根本原因很重要。
-
没有错误 - 什么都没有 - 只是描述的行为。
-
据我了解硒成功单击按钮,但没有任何反应。当 selenium 尝试单击它时,javascript 操作可能尚未绑定到此按钮。尝试在
driver.get()之后等待一段时间,然后再执行click();。