如何使用python selenium单击网页中最后找到的文本

时间:2018-02-09 11:33:59

标签: python selenium

在网页上

有很多同名的文字

实施例

  1. 探索
  2. 探索
  3. 探索
  4. 探索
  5. 探索
  6. 我想点击第5或第4个

    注意:每次重新加载网页时,计数都会有所不同

    1. 探索
    2. 探索
    3. 探索
    4. 探索
    5. 探索
    6. 探索
    7. 探索
    8. 我想点击第6或第7个文字。

      请给出解决方案:

      使用以下语法:不工作 driver.find_elements_by_xpath(“// * [contains(text(),'Explore')]”)

2 个答案:

答案 0 :(得分:1)

尝试通过CSS - 选择器选择此元素,例如,如果您正在探索'元素是一个段落:

locator = (By.CSS_SELECTOR,'p *:last-child')

# Alternative 
# locator = (By.CSS_SELECTOR,'p:last-child')

# Alternative
# locator = (By.XPATH,"//p[contains(text(),'Explore')][last()]")

def click_button(self, *locator):
   button = self.driver.find_element(*locator)
   button.click()

如果您想点击前一个元素:

locator = (By.CSS_SELECTOR,'p:nth-last-child(2)')

我希望它会有所帮助。

答案 1 :(得分:0)

您可以使用Python切片功能,获取最后两个探索,如果只有一个探索,则获得唯一的探索

eles = driver.find_elements_by_xpath("//*[contains(., 'Explore')]")

for ele in eles[-2:]:
  ele.click()