我使用Selenium
和Python
来获取网页请求的所有资源的URL
(包括广告的IMG
URL,通常位于嵌套的iframes中)。但是,这可能不适用于iFrames
和Ajax
请求中的资源。阅读有关这方面的文档并查看其他StackOverflow
答案,似乎可以使用ExpectedCondithtml" target="_blank">ion
等待元素出现。但是在我的情况下,我必须加载几个网站(几千个顶级Alexa
站点),可能没有任何公共元素可以等待。我一直在使用driver.set_page_load_timeout(60)
,因为60
秒似乎足够长的时间让所有嵌套的iframes最终出现。我想知道是否有人能证实这是否是正确的方法,是否有任何其他方法比这更好。谢了。
编辑:我知道这个问题以前已经被回答过了,但为了澄清我问题的细节,我相信所有这些答案都提供了一个解决方案,以检测一个你知道存在于页面上的元素,而在我的情况下,我事先没有任何这样的知识。
我每天都在使用selenium,在我所知的情况下,没有办法确认iframes或ajax是否完全加载,到目前为止(在我所知的情况下)唯一的事情是设置页面加载time out或time.sleep.您认为它适合于无法找到一个公共元素作为检查页面是否完全加载的指示器的情况。Selenium Python已经回答了很多问题:如何等待页面加载?
问题内容: 我编写了一个脚本,该脚本从页面中获取数据,但是有时页面需要花费一些时间来加载,因此当将html拉到汤对象中时,有时它什么也不会拉,因为页面仍然需要完成。 我编写了以下代码以等待页面完成。 有用 但是调用函数时出现以下错误; 问题答案: 我认为您应该这样使用: 如手册所述。
我经常遇到Selenium的问题,脚本崩溃,因为我想访问尚未加载的元素。 目前我是这样做的,我在这些地方之前放了一个,但有时需要更长或更短的时间才能加载元素。 有没有办法等到元素加载完毕,一旦加载,立即继续执行其余的代码?
问题内容: 我想抓取无限滚动实现的页面的所有数据。以下python代码有效。 这意味着每次我向下滚动到底部时,我都需要等待5秒,这通常足以使页面完成加载新生成的内容。但是,这可能不是省时的。该页面可能会在5秒内完成新内容的加载。每次向下滚动时,如何检测页面是否完成了新内容的加载?如果可以检测到此情况,知道页面完成加载后,可以再次向下滚动以查看更多内容。这样更省时。 问题答案: 该会通过等待页面加载
我试图在新选项卡中打开站点,代码:
问题内容: 您如何使Selenium 2.0等待页面加载? 问题答案: 你可以期望显示一些元素。类似于C#:
问题内容: 我想抓取无限滚动实现的页面的所有数据。以下python代码有效。 这意味着每次我向下滚动到底部时,我需要等待5秒钟,这通常足以使页面完成加载新生成的内容。但是,这可能不是省时的。该页面可能会在5秒内完成新内容的加载。每次向下滚动时,如何检测页面是否完成了新内容的加载?如果可以检测到此情况,则在知道页面加载完成后,可以再次向下滚动以查看更多内容。这样更省时。 问题答案: 该会通过等待页面