我正在使用封装在PHPUnit和Sausage中的Selenium WebDriver来测试单击表格中特定行中的按钮,该表格的布局类似于:
<tr id="dynamically generated 1">
<td class="foo">
<div class="bar"></div>
</td>
<td class = "mybutton">
<span class = "icon clickable"></span>
</td>
</tr>
<tr id="dynamically generated 2">
<td class="foo">
<div class="baz"></div>
</td>
<td class = "mybutton">
<span class = "icon clickable"></span>
</td>
</tr>
特别是,我想单击#mybutton > span.icon.clickable
同级为.foo
child的特定元素.baz
。“其兄弟姐妹.foo
与孩子.baz
”要求是我目前可以识别正确元素的唯一方法,因为同一个表中的其他行具有 element #mybutton > span.icon.clickable
,并且这些行的 id 是动态生成的。
目前我正在使用 XPath,但正如您所料,性能FF
非常IE
糟糕。有没有一种方法可以tr#id
从元素中检索 的值tr#id div.bar
?如果我能得到这个,我可以使用 id 来使用 CSS 来查找我正在寻找的元素。我正在使用 PHP,但任何语言的解决方案都会很有用。
或者,一个更直接的 CSS3 解决方案可以工作,但经过大量阅读后,我几乎得出结论,在这种情况下使用标准 CSS3 选择器不是一个选项。以防万一我遗漏了什么,是否有针对此的 CSS3 解决方案?我知道有一个 CSS4 解决方案,但我需要完整的浏览器支持,所以在我测试的所有浏览器都支持 CSS4 之前,我将不得不依赖 CSS3。
提前致谢。
编辑:在对 CSS4 有更好的跨浏览器支持之前,我需要使用 CSS3