不积跬步,无以至千里;不积小流,无以成江海。

Dean's blog

  • Join Us on Facebook!
  • Follow Us on Twitter!
  • LinkedIn
  • Subcribe to Our RSS Feed

如何判断 Selenium 是否加载完成

Selenium是通过浏览器驱动驱动浏览器加载网页,模拟正常的网页浏览,由于网页的加载过程会比较复杂,例如它不但会加载图片、样式表等资源,如果有自动加载的Ajax请求,还会发起Ajax请求,因此,如何判断Selenium是否已加载完成,就会变得复杂,需要按需要使用。

目前判断Selenium是否加载完成,主要的有三种方式:

第一种方法:WebDriverWait

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC  # available since 2.26.0

browser = webdriver.Chrome()
browser.get("http://www.mirthsoft.com")
try:
   element = WebDriverWait(browser, 10).until(EC.presence_of_element_located((By.ID, "myDynamicElement")))
finally:
   browser.quit()

这里是通过检查指定的元素(这里是id="myDynamicElement")是否存在,如果存在则结束等。这种情况一般在判断动态加载的页面是否加载完成时非常高效。

第二种方法:implicitly_wait

from selenium import webdriver

browser = webdriver.Chrome()
browser.implicitly_wait(10)  # seconds
browser.get("http://www.mirthsoft.com")

这里implicitly_wait,设置整个页面的超时时间,超过10指定的时间后,认为是网页加载完成。

第三种方法:time.sleep

from selenium import webdriver
import time

browser = webdriver.Chrome()
browser.get("http://www.mirthsoft.com")
time.sleep(10)

指定加载网页10秒后,认为是网页加载完成。

 

不允许评论
粤ICP备17049187号-1