Selenium Driver无法在父元素范围内定位指定元素求助
问题解决:仅在指定父元素内定位子元素
你的问题出在XPath的路径写法上://tr[contains(@id,'informal')]是全局路径查询,会从整个页面的根节点开始遍历所有符合条件的元素,而不是限定在table_list这个父元素内部。
修复方法
把XPath改为相对路径,在开头加上.,表示从当前上下文元素(也就是table_list)的子节点中查找:
def value(): table_list = driver.find_element(By.ID,"table_list") print(table_list.text) # 修改XPath为相对路径,加上.// value_informal = table_list.find_elements(By.XPATH,".//tr[contains(@id,'informal')]") for tr in value_informal: # 直接遍历元素,替代索引遍历更简洁 value_td = tr.find_elements(By.TAG_NAME, "td") print(value_td[3].text)
补充说明
.//表示从当前元素的所有后代节点中搜索,严格限定在table_list的范围内。- 优化了循环写法,直接遍历元素集合比通过索引取值更直观易读。
内容的提问来源于stack exchange,提问作者Parth Gupta
相关产品推荐
相关产品推荐

