等待页面加载Selenium / Firefox w / Python

时间:2016-05-24 20:02:02

标签: python python-3.x selenium selenium-webdriver

在获取源代码之前,如何在Selenium中等待页面加载?我试图从网页上获取信息,但它已经加载了javascript,所以只是访问来源并不能给我任何东西。我目前正在使用time.sleep来等待javascript加载,但是有更快的方法吗?

Firefox.get(url)
WebDriverWait(FireFox, timeout=60)
time.sleep(5)
source = Firefox.page_source

然后我可以在页面的源代码中搜索我需要的信息,但有更快的方法吗?我可以将值设置为2秒或更快,但是单个慢速页面可能会破坏程序。删除time.sleep会破坏程序,因为javascript没有运行,程序无法找到它正在查找的信息。

1 个答案:

答案 0 :(得分:1)

等待图像在获取页面源之前显示。

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait

browser = webdriver.Firefox()
browser.get('https://vsco.co/vincentdemers/media/573bb798ee5e1d0c03edbe1f')
WebDriverWait(browser, 10).until(lambda d: d.find_element_by_css_selector('#ember610 > img').is_displayed())
source = browser.page_source
browser.close

您可以使用任何方法或选择器来查找您要等待的元素。