我正在与一个数据库进行交互,该数据库返回有关使用selenium的事件的报纸报道。每次实现搜索查询时,数据库都会打开一个新页面,并开始加载有关该事件的所有报纸报道。该网页有一个元素,用于报告所找到的相关报告的总数。在页面完全加载之前,数字会发生更改。
我的问题是有一种方法来确定页面是否已加载。我的当前策略是检查一个循环中的总报告数,当两个循环报告总报告数相同时,判断页面是否完成。我不知道这是否一个好策略。
发布于 2017-12-26 04:09:44
我的当前策略是检查一个循环中的总报告数,当两个循环报告总报告数相同时,判断页面是否完成。我不知道这是否一个好策略。
它是。
在“页面加载”时没有通用规则,因为您可以以预期的方式与页面进行交互,并能够控制所需的元素。检查计数器--加载多少结果是“等待”使用的一个常见条件--通常是一个显式等待。
当页面上有“无限”滚动分页时,结果计数器尤其常用--每次我们滚动时,我们检查当前结果计数是否大于滚动之前的结果计数--这表明新的结果部分到达了,我们可以再次滚动。
发布于 2017-12-26 12:59:23
当您正在与数据库(可能是Button或Link)交互时,数据库将打开一个新页面,并开始加载有关该事件的所有报纸报道,因此,在这里进行评估不会对我们有所帮助。
根据你的问题陈述:
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子句设置为以下任一项:
此策略将使您能够花费最短的时间等待在HTML DOM中呈现text。
https://stackoverflow.com/questions/47973741
复制相似问题