【问题标题】:Selenium: can not locate link in tableSelenium:无法在表中找到链接
【发布时间】:2013-07-18 17:20:23
【问题描述】:

我正在编写 Selenium 脚本。对于包含表格的 html 页面,我无法使用“css=table tr:nth-child(2) td:nth-child(3) a”来定位表格中的链接。 Selenium IDE 给我“[error] locator not found”。

但是使用“css=table tr:nth-child(2)”,它可以定位到行。 所以我误认为 css 定位器,我认为添加 "td:nth-child(3) a" 应该适用于 td 中的链接,为什么不呢?

编辑:我使用的是 firefox 3.0.15

【问题讨论】:

    标签: css selenium


    【解决方案1】:

    鉴于 HTML:

    <html>
      <body>
        <table>
          <tr><td>Hello</td><td>World</td></tr>
          <tr><td>I'm</td><td><a href="http://www.example.com/">Batman</a></td></tr>
        </table>
      </body>
    </html>
    

    您可以对第 2 行第 2 列中的链接使用以下定位器:

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

    更新:

    经过一些研究,您原来的定位器似乎应该可以工作,但不是因为 Selenium 使用的 cssQuery 库中的错误 (http://jira.openqa.org/browse/SEL-698)。我上面的建议有效,但在修复错误之前,它实际上只是一种解决方法。不幸的是,考虑到 cssQuery 已经有一段时间没有更新了,我不确定这个问题会在多长时间内得到解决。

    【讨论】:

      【解决方案2】:

      Selenium IDE 2.1.0 中仍然存在类似问题

      我正在测试一组网站以检查特定 URL 是否已更改。

      我应该检查的链接在一个表格中,在从顶部开始的第 25 个左右的 tr 中......

      <tr>
      <td>
      <div align="center">
      <font color="#FFFFFF">
      <a target="_blank" href="http://[The link I need to test] ... 
      

      我都用过

      assertElementPresent  //*[starts-with(@href,'The Link')]
      

      assertElementPresent  //*[contains(@*,'The Link')]
      

      在某些情况下,第一个会找到结果,但第二个不会。大多数情况下,两者都找不到链接。

      【讨论】:

        猜你喜欢
        • 2021-08-31
        • 2017-03-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-12-21
        • 2023-04-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多