0

我是 xpath 和 selenium 的新手,我需要能够根据天气单击带有 selenium 的链接,或者不是某个文本的跨度。示例代码是:

    <div>
    <span>Fri</span>
    <ul>
    <li>
    <a href=#></a>
    </li>
    </ul>
    </div>
<div>
    <span>Sat</span>
    <ul>
    <li>
    <a href=#></a>
    </li>
    </ul>
    </div>

我的 xpath//*[text()[contains(.,'Fri')]]可以找到正确的跨度,现在我想我可以使用//*[text()[contains(.,'Fri')]]../ul/li/a,但这不起作用。

有任何想法吗?

4

1 回答 1

3

Selenium IDE 命令将是:

command: click
target : //span[contains(text(),'Fri')]/following::a

这里

following:: 树中上下文节点之后的所有节点,不包括任何后代、属性节点和命名空间节点。

请注意,您可能不会[1]在 xpath 表达式的末尾写入以从所有出现中选择第一个节点,因为 selenium IDE 默认会这样做。

当您使用 IDE 时,您还可以使用更易于阅读的 css 选择器:

command: click
target : css=span:contains('Fri')+ul a

至于您最初的 xpath,您之前错过了一个斜杠../

//*[text()[contains(.,'Fri')]]/../ul/li/a
于 2012-05-03T19:48:38.370 回答