【问题标题】:How do I click a link that has only the "href" unique on a page? Selenium Webdriver - Python如何单击页面上只有“href”唯一的链接? Selenium Webdriver - Python
【发布时间】:2014-09-18 23:53:45
【问题描述】:

假设您有以下列表:

<ul>
  <li>
      <a class="sameClass" href="link1">Same Text</a>
  </li>
  <li>
      <a class="sameClass" href="link2">Same Text</a>
  </li>
  <li>
      <a class="sameClass" href="link3">Same Text</a>
  </li>    
...
</ul>

我想点击 href="link1" 的“相同文本”。

注意: 我已经尝试了多个 css 选择器和 xpath。他们都没有工作。 我正在使用 Selenium 2.27.0

【问题讨论】:

  • 你试过 //a[@href='link1' and text()='Same Text']
  • 不,但它有效。非常感谢您,先生:)
  • @kirschmichel 如果链接是唯一的,则 [@href='link1'] 就足够了。为什么充斥着无用的文字?如果文本字符串将被本地化怎么办?
  • @Alex Okrushko,据我测试,只有 a[@href='link1'] 没有将元素识别为可点击。我需要单击文本,而不是构建 url。
  • 如果链接是唯一的,那么a[@href='link1'] 就足够了。 :) 您可以在 Firebug (Firefox) 中尝试使用 Firepath。其次,xpath 用于选择元素 - 它与“可点击性”无关。在您的情况下,它选择 &lt;a&gt;&lt;/a&gt; 标记,您可能会进一步使用它来单击。

标签: selenium python-2.7 webdriver selenium-webdriver


【解决方案1】:

如果您想使用 CSS 选择器而不是 xpath,这应该可以工作。

a[href='link2'] 或 a[href*='partialLink2']

【讨论】:

    【解决方案2】:

    css=a[href='link1']

    css=a[href='link2']

    css=a[href='link3']

    以上是相同文本的唯一 CSS 选择器。

    【讨论】:

      【解决方案3】:

      试试这个 links = driver.find_elements_by_xpath("//a[contains(text(), 'Same Text')]")

      其中 links 是所有元素的列表。 链接 [0] = 链接 1 链接[1] = 链接2.. 以此类推

      【讨论】:

        猜你喜欢
        • 2016-12-28
        • 2021-12-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-08-15
        相关资源
        最近更新 更多