如何确定是否使用selenium加载页面?

问题描述 投票:2回答:2

我正在与一个数据库交互,该数据库使用selenium返回有关事件的报纸报道。每次实现搜索查询时,数据库都会打开一个新页面并开始加载有关该事件的所有报纸报告。该网页有一个元素,用于报告找到的相关报告的总数。在页面完全加载之前,数字会更改。

我的问题是有一种方法来确定页面是否已加载。我目前的策略是检查循环中的总报告数,并在两个循环报告相同数量的总报告时确定页面已完成。我不确定这是不是一个好策略。

python selenium selenium-webdriver
2个回答
0
投票

我目前的策略是检查循环中的总报告数,并在两个循环报告相同数量的总报告时确定页面已完成。我不确定这是不是一个好策略。

它是。

在“加载页面”时,没有通用规则,您可以以预期的方式与其进行交互,并能够控制所需的元素。检查计数器 - 加载了多少结果是用于“等待”的常见条件 - 通常是Explicit Wait

当页面上存在“无限”滚动分页时,结果计数器尤其常用 - 每次滚动时我们检查当前结果计数是否大于滚动前的结果 - 这表示结果的新部分到了,我们可以再次滚动。


0
投票

当您与数据库(可能是ButtonLink)进行交互时,数据库将打开一个新页面并开始加载有关该事件的所有报纸报告,因此重新评估("return document.readyState").equals("complete")将无法帮助我们。

根据你的问题陈述:

My current strategy is to check the number of total reports in a loop and decides the page is complete when two loops report the same number of total reports.

是的,这是确切的方式,但您没有对如何实施解决方案有所了解。

最有效的解决方案是使用WebDriverWait子句将expected_conditions设置为以下任一项:

这个策略将使您能够花费最短的时间等待textHTML DOM中呈现

© www.soinside.com 2019 - 2024. All rights reserved.