【问题标题】:Selenium => 4BUTTON with same href , same class , same text wanna click on 4Selenium => 4BUTTON 具有相同的 href 、相同的类、相同的文本想要点击 4
【发布时间】:2019-07-03 16:03:54
【问题描述】:

我只是想在网站上找到元素但找不到它。代码是:

<a href="#" class="btn btn-default free_send_button">Basla</a>      

你能帮我解决一下吗?有 4 个相同的 html 按钮代码:4 个相同的 href,4 个相同的类,4 个相同的文本代码……我只想点击 4。我尝试了一些我在下面写的代码。如果可能且有用的话,您能否修复我的代码,或者找到元素的最佳方法是什么?已经谢谢了..

self.web.find_element_by_xpath("(//href[text()[contains(.,'#')]])[1]").click()

【问题讨论】:

    标签: selenium class text href


    【解决方案1】:

    我只是尝试继续 class'name 并找到它。我希望它可能会有所帮助:

    self.web.find_element_by_xpath("(//a[contains(@class,'btn btn-default free_send_button')])[1]").click()
    

    【讨论】:

      【解决方案2】:

      正如你所提到的,类和文本也相同,你想点击最后/第四个匹配然后你可以尝试下面的定位器:

      locator = "(//a[text()='Basla'])[last()]"
      element = driver.find_element_by_xpath(locator)
      element.click()
      

      locator = "(//a[text()='Basla'])[4]"
      element = driver.find_element_by_xpath(locator)
      element.click()
      

      locator = "(//a[contains(@class, 'free_send_button')])[last()]"
      element = driver.find_element_by_xpath(locator)
      element.click()
      

      locator = "(//a[contains(@class, 'free_send_button')])[4]"
      element = driver.find_element_by_xpath(locator)
      element.click()
      

      您可以为该定位器编写更多 xpath,但我认为上面提到的会起作用。

      【讨论】:

      • 感谢@Ali CSE 的回答。你能解释一下,为什么我们在包含之前使用“a”前面?这就是全部吗?
      • a 是那里的一个 html 节点...您想识别存在于 html a 标记内的元素,因此在此使用 a...您可以将其替换为* 也是,但在这种情况下,您将有多个匹配项...
      • 感谢老兄的回答和解释!
      猜你喜欢
      • 2018-02-28
      • 1970-01-01
      • 2014-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多