【问题标题】:How to click a link using xpath and selenium ide如何使用 xpath 和 selenium ide 单击链接
【发布时间】:2012-05-03 19:27:21
【问题描述】:

我对 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,但这不起作用。

有什么想法吗?

【问题讨论】:

    标签: xpath selenium


    【解决方案1】:

    Selenium IDE 命令将是:

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

    来自here

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

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

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

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

    至于您的初始 xpath,您在 ../ 之前错过了一个斜线:

    //*[text()[contains(.,'Fri')]]/../ul/li/a
    

    【讨论】:

    • 非常好,感谢您的分解,根据您的建议,我能够让它与以下内容一起工作://span[text()[contains(.,'10')]]/../ul/li/a/ 但是对于未来的项目,我认为我会像它一样使用 css 选择器确实看起来更容易!
    猜你喜欢
    • 2012-06-22
    • 2018-05-31
    • 2015-05-29
    • 2014-03-26
    • 1970-01-01
    • 1970-01-01
    • 2015-08-18
    • 2020-09-23
    • 2023-03-31
    相关资源
    最近更新 更多