我正在测试一个在点击另一个跨度时取消隐藏div块的应用程序。 (它是下拉列表的模仿。)也就是说,当我点击正确的元素来显示div块时,<div class="select-popup" style="display:none; z-index:auto;">
变为<div class="select-popup" style="display:block; z-index:1019;">
(其他类和样式属性不会出现在&#39} ; t更改被遗漏)样式中唯一更改的其他属性是
在Se IDE中,我有
<tr>
<td>waitForElementPresent</td>
<td>css=.select-popup:visible</td>
<td></td>
</tr>
然而,它失败了。我点击&#34;查找&#34;按钮,它没有看到显示的div块
我使用Firebug作为检查代码的方式,它有一个很好的控制台功能。我输入$('.select-popup:visible');
它正确显示元素显示:块已设置,并且在显示时没有找到它:无设置。
关于我做错了什么或者用这种方式破坏了Se IDE的想法?
答案 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)
我没有得到你的问题,但猜测你正在努力访问同一类的一些嵌套元素 但希望以下链接是您的完整解决方案,请查看