【发布时间】:2022-01-25 16:22:52
【问题描述】:
我正在使用带有 selenium 的 python 来尝试迭代循环。
这是我的代码:
rowsArray = driver.find_elements_by_class_name("search-results__result-item")
countRows = (len(rowsArray))
这样我找到 countRows = 25,然后我尝试在 for 循环中迭代:
for i in range(countRows):
row = driver.find_elements_by_class_name("search-results__result-item")[i]
print(row)
这种方式效果很好,但是由于我需要在具有“search-results__result-item”类的元素中获取元素,因此我尝试在循环中使用 xpath 对其进行更改:
row = driver.find_element_by_xpath(".//li[contains(@class, 'search-results__result-item')][" + str(i) + "]"
或
row = driver.find_element_by_xpath("//li[@class='search-results__result-item']" + str(i) + "]")
但我得到的只是信息:
selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element: //li[@class='search-results__result-item'][0]
使用 XPath 迭代循环的正确方法是什么?
【问题讨论】:
-
你能分享你正在处理的页面的链接和更多你的代码吗?目前还不够清楚你试图在哪些元素等中访问哪些元素。
-
我可以 (linkedin.com/sales/search/saved-searches/company),但它是内部销售导航器,所以我认为您无法访问。
-
事实上这些项目是存在的,因为我可以使用 find_elements_by_class_name 找到它们。使用 xpath 执行相同循环的正确方法是什么?