在网页上
有很多同名的文字
实施例
我想点击第5或第4个
注意:每次重新加载网页时,计数都会有所不同
我想点击第6或第7个文字。
请给出解决方案:
使用以下语法:不工作 driver.find_elements_by_xpath(“// * [contains(text(),'Explore')]”)
答案 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()