Selenium在<ul>的<li>列表中调用find_element获取文本异常求助
问题解决:循环获取元素文本重复的问题
问题出在你使用的XPath路径上:
- 当你通过
x.find_element调用时,用的//div/div/article/div/div/div/span是绝对路径,会从整个HTML文档的根节点开始查找,所以每次都会返回页面中第一个匹配的span元素文本,导致所有结果重复。
解决方法很简单,把XPath改成相对路径,在开头加上.,表示从当前<li>元素的上下文开始搜索:
list_of_text_i_need = [x.find_element(by='xpath', value='.//div/div/article/div/div/div/span').text for x in list_of_li]
.代表当前节点,.//会从当前节点的子节点中递归查找匹配的元素,这样就能正确获取每个<li>下对应的目标span文本了。
内容的提问来源于stack exchange,提问作者lex
相关产品推荐
相关产品推荐

