如何使用Python Selenium在网页中单击最后发现的文本



在网页上,

有很多具有相同名称的文本

示例

  1. 探索
  2. 探索
  3. 探索
  4. 探索
  5. 探索

我想单击第五或第四个

注意:当我重新加载网页

时,计数每次都不同
  1. 探索
  2. 探索
  3. 探索
  4. 探索
  5. 探索
  6. 探索
  7. 探索

我想单击第六或第七文本。

请提供解决方案:

使用以下语法:不工作driver.find_elements_by_xpath("//*[contains(text((,'explore'(]"(

尝试通过CSS选择此元素 - 例如,如果您的'explore'元素是段落:

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()

如果您想单击前last元素:

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

我希望它会有所帮助。

您可以使用python slice功能,获取最后两个探索,并获得唯一的探索,如果只有一个探索

eles = driver.find_elements_by_xpath("//*[contains(., 'Explore')]")
for ele in eles[-2:]:
  ele.click()

最新更新