我想打在包含多个链接的表行的链接。这种模式在整个表中使用。

此工作的:

browser.wait_for(:element => "css=tr:nth-child(1) li:nth-child(2) > a")

这并不:

browser.click "css=tr:nth-child(1) li:nth-child(2) > a"

任何想法,这可能是为什么?我使用的硒的客户端rubygem。

有帮助吗?

解决方案

我怀疑,这是由于在cssQuery了错误,硒目前使用来定位由CSS元素。这个问题和补丁的详细信息可以在以下问题的意见中找到:的http:// jira.openqa.org/browse/SEL-698

希望帮助 - 我相信硒2将使用CSS定位器不同的图书馆 - 可能JQuery的灒(的http:// sizzlejs.com/ ),这应该解决这个问题。

戴夫。

其他提示

要避免这样的痛苦的CSS问题,我已经安装了jQuery的为用户扩展。它提供了定义类似于CSS定位器字符串的能力(“jQuery的= td.dt-COL-状态div.dt衬:包含(‘完全’)”),这是更强大。我可以扩大我做到了对Java RC,如果你愿意的话。

这是硒1我会尝试在你的CSS路径写出整个路径,看看有没有什么帮助的错误。

当然,如果你使用的是下面的HTML,您可以使用下面的CSS定位结果     

    <table>
        <tr>
            <td>
                <li>
                    <a href="/yourlink" >
</li> </td> </tr> </table>

"css=tr:nth-child(1) > td > li:nth-child(2) > a"

如果不工作,你总是可以使用XPath。这只是因为CSS定位器的表现,但往往有较少的毛刺。 你必须使用的XPath时,要记住的唯一的事情是,他们通常比CSS定位器要慢。

"xpath=//tr/td//li[2]/a" 
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top