【发布时间】:2015-05-28 12:16:47
【问题描述】:
我有一个类似这样的密码文本框
<input class="blahblah" id="someId" type="password"></input>
我可以在浏览器中看到这个文本框,并且可以手动输入密码。
但是,当我使用 selenium 测试此 ui 时,虽然它正确找到了元素,但是当它尝试单击该元素时,它会抛出错误 “org.openqa.selenium.ElementNotVisibleException:元素当前不可见,因此可能无法与之交互”
我使用
进行了签入代码Boolean isDisplayed=el.isDisplayed();//false
Boolean isEnabled=el.isEnabled();//true
isDisplayed 出现了 false 和 isEnabled 出现了 true。添加了 15 秒的延迟以使页面有足够的时间加载(页面立即加载)。所以添加延迟并不能解决问题。
我使用 firefox 开发者工具验证了它找到的 id 是正确的元素。
为什么 selenium 认为它是不可见的,即使我能够在浏览器中看到它?可能是其中一个父元素具有一些 selenium 不喜欢的样式属性吗?还是硒驱动程序中的错误?
我正在使用 Java 版本 2.45.0 的 selenium 驱动程序
【问题讨论】:
-
需要更多信息在这里。共享页面的 URL,或者尽可能多的 HTML 在这里有意义。有一些想法,但首先需要这个。谢谢。
-
它不是一个可公开访问的网址。该页面是使用 asp.net 生成的,因此其中包含大量垃圾。 (旧代码)
-
谢谢,你能至少显示几个密码输入的父母吗?或者,完整的表格。
-
我敢打赌,密码字段有一个嵌套输入。我不得不处理同样的垃圾。最后,不得不通过
JavaScriptExecutor设置密码 -
在信息太少的情况下盲目射击,但我有时会看到 Selenium 认为对象是 scrolled off of the screen 的问题。
标签: java javascript css selenium selenium-webdriver