我对 Selenium 很陌生,所以这个问题可能很愚蠢,但我无法解决它......
我正在尝试使用 Selenium(在 Java 中,使用 Eclipse 和 Firefox 和 Chrome 驱动程序)在屏幕上肯定显示和可见的元素上进行 click(),但是false
当我在其上应用该isDisplayed()
方法时会返回。所以我得到一个异常,告诉我元素必须可见才能对其执行操作。
我检查了所有父母 div(我没有在我的页面中使用任何 iframe),其中一些返回true
为其他返回 false。这是我尝试做的代码的一个小例子:
<div id=1><div id=2><div id=3><div id=4><img that i want to click on with selenium\></div></div></div></div>
我想用 selenium 点击 img,但它认为它没有显示。
- img 被标记为未显示
- div4 被标记为不显示
- div3 被标记为由 selenium 显示
- div2 被标记为不显示
- div1 被标记为显示,因为所有父母 div
但我绝对可以在我的屏幕上看到同一个 div 中的图像和其他元素。
在那一点上有什么帮助吗?谢谢 !
编辑:我使用 JS 来修改这些属性,特别是 div 3,它在加载时不显示并标记为不显示,但是经过几次操作后,它变成了(它是并且被标记为)显示。
编辑 2:我发现标记为不被 selenium 显示的两个 div 的样式都具有两种样式display:block;
(在 chrome 开发工具中看到)。有任何想法吗 ?
Edit3:根据评论中给出的链接,我添加了 div 的计算样式:
- div4 :它的高度和宽度不为零,显示设置在块上。它甚至有最小宽度和最小高度。
- div3 :它的高度和宽度不为零,显示也设置在块上
- div2:它有一个 0 高度和一个非零宽度和一个 display:block;所以这可能是问题所在。
- div1 : 高度为 0,非 sero 宽度,无显示参数,隐藏溢出-x 和 y。认为这个被 Selenium 标记为 deisplayed ......
有任何想法吗 ?