2018-02-27 设置等待时间(python+selenium)

1.强制等待

import time

time.sleep(2)         #2表示时长,单位为秒

2.隐性等待,implicitly_wait(xx)

driver.implicitly_wait(30) # 隐性等待,最长等30秒

隐形等待是设置了一个最长等待时间,如果在规定时间内网页加载完成,则执行下一步,否则一直等到时间截止,然后执行下一步。

注意这里有一个弊端,那就是程序会一直等待整个页面加载完成,也就是一般情况下你看到浏览器标签栏那个小圈不再转,才会执行下一步,但有时候页面想要的元素早就在加载完成了,但是因为个别js之类的东西特别慢,我仍得等到页面全部完成才能执行下一步。

需要特别说明的是:隐性等待对整个driver的周期都起作用,所以只要设置一次即可。

3.显性等待,WebDriverWait,

它主要的意思就是:程序每隔xx秒看一眼,如果条件成立了,则执行下一步,否则继续等待,直到超过设置的最长时间,然后抛出TimeoutException。

from selenium import webdriver

from selenium.webdriver.support.wait import WebDriverWait

from selenium.webdriver.support import expected_conditions as EC

from selenium.webdriver.common.by import By

driver = webdriver.Firefox()

driver.implicitly_wait(10) # 隐性等待和显性等待可以同时用,但要注意:等待的最长时间取两者之中的大者

driver.get('https://huilansame.github.io')

locator = (By.LINK_TEXT,'CSDN')