【发布时间】:2018-12-10 13:18:02
【问题描述】:
我正在尝试使用 Java 中的 Selenium 遍历一个表(当前使用的是 chromedriver)。表格的内容由不同的人组成,并带有指向他们个人资料的链接,对于该表格中的每个人,我将进入他们的个人资料并提取一些信息。我将为 X 人做这件事。该表每页包含 5 人,我通过单击分页按钮“>”浏览页面。请参阅https://www.seleniumeasy.com/test/table-pagination-demo.html 了解表格的结构。
现在问题来了:举个例子,我目前在 exampleUrl.com/page_containing_table 然后我输入用户的个人资料并提取他们的信息,他们的 URL 类似于 exampleUrl .com/user_x。然后我使用
driver.navigate().back();
返回表格页面 (exampleUrl.com/page_ contains_table)。
问题是当我遍历表时,URL 没有改变。所以每当我从 exampleUrl.com/user_x 回到 exampleUrl.com/page_containing_table 时,我总是会在表格的第一页结束。
当我只需要从表格的第一页获取用户信息时,这很好用,但如果我需要浏览 25 页怎么办?如果我在第 11 页,那么我将能够在第 11 页检索一个用户的信息,然后我将导航回第 1 页,然后我必须再次分页到第 11 页才能再提取一个用户信息。
我尝试了什么:
-
我试图对所有页面进行分页以检索所有用户的链接然后单击它们,但显然我收到了
StaleElementReferenceException,因为该链接当前在页面上不可见。 我还认为,每当我对表格进行分页然后切换到该特定驱动程序时,也许有一种方法可以复制驱动程序,但这也失败了。
通过 Google,我无法找到任何其他关于此的问题,所以我有点不知所措。有没有办法以某种方式保存状态,这样我就不必每次都回到第一页?
提前致谢:)
【问题讨论】:
标签: java selenium selenium-webdriver web-scraping selenium-chromedriver