Python Selenium遍历表格仅获取第一行数据问题求助
问题分析与解决办法
问题原因
你获取单元格时使用的XPath //td[@data-bind='text: CodPlaceOrg'] 是全局搜索路径,会从整个HTML文档的根节点开始查找匹配元素,因此每次循环都会返回页面中第一个符合条件的单元格(也就是第一行的内容),而不是当前行下的对应单元格。
解决办法
将XPath改为相对路径,在开头添加.,表示从当前遍历的行节点下开始搜索子节点。同时可以优化循环写法,直接遍历行元素更简洁:
table = driver.find_element(By.XPATH, "//div[@class='panel panel-primary']//table[@id='SheetDetails']") body = table.find_element(By.TAG_NAME, "tbody") rows = body.find_elements(By.TAG_NAME, "tr") for row in rows: numExpedicion = row.get_attribute('id').split('-', 1)[1] # 使用相对路径从当前行内查找目标单元格 origenPlaza = row.find_element(By.XPATH, ".//td[@data-bind='text: CodPlaceOrg']") print(origenPlaza.text) driver.quit()
内容的提问来源于stack exchange,提问作者mcheriha
相关产品推荐
相关产品推荐

