您正在查找起始元素下的元素。为了做到这一点,你必须使用自轴,
.
,例如
.//a[@href]
是的。指示从当前元素开始并在其下搜索的。因为您没有包含它,所以xpath搜索整个页面,即使您的代码似乎表明(在您理解原因之前,它以这种方式工作有点令人困惑)它应该从
obj_div
元素和只搜索后代。
附加说明:
你的巢
try
不需要,因为您正在使用
.find_elements_*
是的。它总是返回一个集合,因此您必须查看该集合是否为空,才能知道是否找到了元素。
你的完整代码和编辑看起来像
browser.get(url)
elems = []
try:
obj_div = browser.find_element_by_class_name("jss504")
elems = obj_div.find_elements_by_xpath(".//a[@href]")
except NoSuchElementException:
pass
print(len(elems))
说到这里,我建议您使用nic laforge建议的css选择器。我只想解释你的问题的答案,并提供一些额外的反馈,以防将来对你有用或对他人有用。