Selenium IDE waitForElementPresent:可见无法使用display:none来显示:block

时间:2014-08-22 20:51:15

标签: css-selectors selenium-ide

我正在测试一个在点击另一个跨度时取消隐藏div块的应用程序。 (它是下拉列表的模仿。)也就是说,当我点击正确的元素来显示div块时,<div class="select-popup" style="display:none; z-index:auto;">变为<div class="select-popup" style="display:block; z-index:1019;">(其他类和样式属性不会出现在&#39} ; t更改被遗漏)样式中唯一更改的其他属性是

中的z-index

在Se IDE中,我有

<tr>
   <td>waitForElementPresent</td>
   <td>css=.select-popup:visible</td>
   <td></td>
</tr>

然而,它失败了。我点击&#34;查找&#34;按钮,它没有看到显示的div块 我使用Firebug作为检查代码的方式,它有一个很好的控制台功能。我输入$('.select-popup:visible');它正确显示元素显示:块已设置,并且在显示时没有找到它:无设置。

关于我做错了什么或者用这种方式破坏了Se IDE的想法?

2 个答案:

答案 0 :(得分:5)

好的,这就是答案。 :visible是一个JQuery扩展,不是CSS规范的一部分。 Firebug正在做的是使用JQuery来查找它,而Selenium IDE在其CSS选择器中不使用JQuery。

http://api.jquery.com/visible-selector/

以下是一个例子。

点击&#34;帮助&#34;链接在此页面顶部。在firebug的控制台中,键入:

$('.help-dialog:visible') 
单击

并单击“运行”。请注意,它返回一个值 - &gt;的jQuery(div.topbar-dialog.help-dialog.js-帮助-dialog.dno)

现在,在Selenium IDE 2.6.0中,输入

css=.help-dialog:visible
在目标框中单击

,然后单击“查找”按钮。它找不到元素。


正确答案是搜索元素的样式属性display属性。以下行将找到一个可见(而不是隐藏)的元素。

css=.help-dialog:not([style*="display: none"])

答案 1 :(得分:-2)

我没有得到你的问题,但猜测你正在努力访问同一类的一些嵌套元素 但希望以下链接是您的完整解决方案,请查看

Selenium how to access two controls of same css class