我有一个通过find_elements_by_xpath
检索的元素列表results = driver.find_elements_by_xpath("//*[contains(@class, 'result')]")
现在我想迭代返回的所有元素并找到特定的子元素
for element in results:
field1 = element.find_elements_by_xpath("//*[contains(@class, 'field1')]")
我的问题是在迭代中忽略了xpath选择的上下文,所以 field1 总是只返回带有 field1 的第一个元素无论当前元素如何,页面上的类
答案 0 :(得分:2)
正如@Andersson发布的修复非常简单,所需要的只是表达式开头的点:
for element in results:
field1 = element.find_elements_by_xpath(".//*[contains(@class, 'field1')]")
答案 1 :(得分:-1)
使用css选择器(减少输入)并一次查找所有元素更容易:
for element in driver.find_elements_by_css_selector(".result .field1")
field1 = element