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

Mac*_*tyn 1 selenium-ide css-selectors

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

在Se IDE中,我有

<tr>
   <td>waitForElementPresent</td>
   <td>css=.select-popup:visible</td>
   <td></td>
</tr>
Run Code Online (Sandbox Code Playgroud)

但是,它失败了.我单击"查找"按钮,它看不到显示的div块.
我正在使用Firebug来检查代码,它有一个很好的控制台功能.我输入$('.select-popup:visible');它正确找到显示时的元素:阻止设置并且在显示时没有找到它:无设置.

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

Mac*_*tyn 5

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

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

这是一个例子.

单击本页顶部的"帮助"链接.在firebug的控制台中,键入:

$('.help-dialog:visible') 
Run Code Online (Sandbox Code Playgroud)

然后单击"运行" 请注意,它返回一个值 - > jQuery(div.topbar-dialog.help-dialog.js-help-dialog.dno)

现在,在Selenium IDE 2.6.0中输入

css=.help-dialog:visible
Run Code Online (Sandbox Code Playgroud)

在"目标"框中,单击"查找"按钮.它找不到元素.


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

css=.help-dialog:not([style*="display: none"])
Run Code Online (Sandbox Code Playgroud)