微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Python Selenium 表迭代不起作用

如何解决Python Selenium 表迭代不起作用

我是 Python Selenium 的新手,我正在尝试在 iframe 中自动化一些网页抓取。 我正在尝试进入一个表格(在 iframe 内)并单击一个链接。 一切正常,但是在引用表列时,代码似乎在每次迭代中都坚持第一列的值。 这是我的一些代码

1 table = driver.find_element_by_xpath("//table[@class='table table-striped v-align-middle']")
2 rows = table.find_elements_by_css_selector("tr")
3 for row in rows:
4     print(row.text)
5     print(row.find_element_by_xpath("//td[3]").text)
6     row.find_element_by_xpath("//td[6]//a[@href]").click()

第 4 行让我得到每一行的完整文本,完美运行。这只是一条测试线。 第 5 行每次都为我获取第一行的第 3 列值。所以不工作。 第 6 行,就像第 5 行一样,每次都点击第 6 列中的链接。再说一次,不工作

我认为 xpath 上一定有我做错的地方? 谢谢!

我真的不明白为什么第 4 行迭代得很好,但第 5 行和第 6 行每次都坚持第一列的值。

解决方法

当使用 XPath 并从给定元素开始搜索时,您必须在定位器的开头添加一个 .,例如

print(row.find_element_by_xpath(".//td[3]").text)
                                 ^ note the period

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。