在多个页面中搜索特定元素,然后使用Python Selenium单击



Hi-im尝试从第1页导航到第5页(元素可以在任何页面中(,并使用python selenium查找并单击特定元素。以下是页面中的元素:

<span _ngcontent-mtx-c123"" class"ng-star-inserted">ABC Company</span>

我试过使用:driver.find_element_by_name("ABC Company").click(),但这不起作用。我尝试的另一种方式:

1. element_path="//span[contains(text(),'ABC Company')]" 
2. while True: 
3.  if(driver.find_elements_by_xpath(element_xpath)): driver.find_element_by_xpath(element_xpath).click() 
4.  else: driver.find_element_by_xpath("xpath to goto next page").click()

我需要代码从下一页中找到元素,直到找到它,然后点击它

有别的办法吗???

提前感谢

首先,您需要检查元素是否存在,并且仅当它存在时单击它。否则,在尝试单击不存在的元素时会出现异常
driver.find_elements返回与传递的定位器匹配的web元素列表。因此,如果有这样的元素,它将返回非空列表,Python将其解释为True。否则,返回的空列表被解释为False
关于您要查找的元素的定位器:您可以根据元素所包含的文本来定位该元素。这可以通过XPath来完成
如下:

element_xpath = "//span[contains(text(),'ABC Company')]"
if(driver.find_elements_by_xpath(element_xpath)):
driver.find_element_by_xpath(element_xpath).click()

如果需要动态更新XPath定位器,可以将文本作为参数传递。假设你有一个文本列表,你可以如下迭代:

for txt in texts:
element_xpath = "//span[contains(text(),'{}')]".format(txt)
if(driver.find_elements_by_xpath(element_xpath)):
driver.find_element_by_xpath(element_xpath).click()

相关内容

  • 没有找到相关文章