等待使用 Python 在 Selenium 中加载所有资源 [重复]

Posted

技术标签:

【中文标题】等待使用 Python 在 Selenium 中加载所有资源 [重复]【英文标题】:Waiting for all the resources to load in Selenium with Python [duplicate] 【发布时间】:2017-09-28 14:41:54 【问题描述】:

我正在使用SeleniumPython 来获取网页请求的所有资源的urls(包括通常位于嵌套iframe 内的广告的img url)。但是,这可能不适用于 iframes 中的资源和 ajax 请求。阅读this 上的文档并查看other *** 答案,您似乎可以使用ExpectedCondition 等待元素出现。但就我而言,我必须加载多个网站(数千个Top Alexa 网站),可能没有任何我可以等待的共同元素。我一直在使用driver.set_page_load_timeout(60),因为60 秒似乎对于所有嵌套的 iframe 最终都出现了足够长的时间。我想知道是否有人可以确认这是否是正确的方法,以及是否有比这更好的方法。谢谢。

编辑:我意识到这个问题之前已经回答过,但是为了澄清我的问题的具体细节,我相信所有这些答案都提供了一个解决方案,可以检测页面上存在的元素,而在我的情况下,我事先没有任何这样的知识。

【问题讨论】:

你试过document.readyState吗? 【参考方案1】:

我每天都使用 selenium,据我所知,无法确认 iframe 或 ajax 是否完全加载,到目前为止(据我所知)唯一的事情是将页面加载超时或 time.sleep 设置为扩展您认为它适用于您无法找到公共元素作为指标来检查页面是否完全加载的情况。 很多关于这个的问题已经回答了 Selenium Python: how to wait until the page is loaded?

【讨论】:

Phong 感谢您的回答,我将尝试使用预期条件技术。目前,我遇到的问题是expected_conditionsset_page_load_timeout 都没有遵循我给他们的60s 限制,第一个超时很晚,第二个超时很早。有什么想法吗?

以上是关于等待使用 Python 在 Selenium 中加载所有资源 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

Selenium2+python自动化38-显式等待(WebDriverWait)

Selenium2+python自动化38-显式等待(WebDriverWait)

python selenium wait方法

使用显式等待在 Python 中使用 Selenium 弹出“接受 Cookie”

selenium-Javaloading

python+selenium六:隐式等待