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