该webdriver
会通过等待页面加载默认.get()
的方法。
正如您可能正在寻找@ user227215所说的某些特定元素时,应该使用它WebDriverWait
来等待页面中的某个元素:
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.common.exceptions import TimeoutException
browser = webdriver.Firefox()
browser.get("url")
delay = 3 # seconds
try:
myElem = WebDriverWait(browser, delay).until(EC.presence_of_element_located((By.ID, 'IdOfMyElement')))
print "Page is ready!"
except TimeoutException:
print "Loading took too much time!"
我用它来检查警报。您可以使用任何其他类型的方法来查找定位器。
编辑1:
我应该提到,webdriver
默认情况下,会等待页面加载。它不等待加载内部框架或ajax请求。这意味着当您使用时.get('url')
,浏览器将等待页面完全加载完毕,然后转到代码中的下一个命令。但是,当您发布ajax请求时,请webdriver
不要等待,您有责任等待适当的时间以加载页面或页面的一部分;因此有一个名为的模块expected_conditions
。