Selenium 实践(二)-设置等待时间

文|桃子

在实践(一)中,登录过程中网页加载慢,出现了还没等图片完全加载出来就进行图片识别的现象,导致识别失败,如下图


Selenium 实践(二)-设置等待时间_第1张图片
登陆失败

那么我们应该如何操作去避免提前加载的现象呢?

如果给它加一个条件满足(图片验证码显示完全)时:再进行图片识别操作是否可行呢,我们来看看

Selenium有3种等待时间:


Selenium 实践(二)-设置等待时间_第2张图片
3种等待方法 

结合以上三种等待方法与图片完全加载出来再去图片识别相比较,发现WebDriverWait()比较适用,那么WebDriverWait()如何使用呢?


1. 使用WebDriverWait()方法:

WebDriverWait(driver,timeout,poll_frequency=0.5,ignored_exceptions=None)

driver :浏览器驱动名称

timeout :最长超时时间,默认以秒为单位。

poll_frequency :检测的间隔(步长)时间,默认为0.5S。

ignored_exceptions :超时后的异常信息,默认情况下抛NoSuchElementException异常

WebDriverWait()一般由until()或until_not()方法配合使用


HTML结构:

HTML结构

browser=webdriver.Firefox()browser.get("https://login.acesse.com/en?dest_url=https://acesse.com/en/contact")#打开测试网站 Element=WebDriverWait(browser,100).until(    EC.presence_of_element_located((By.ID,"captcha_img_id")))

browser.find_element_by_name("Login").send_keys("xxxx")

browser.find_element_by_name("Password").send_keys("xxxxx")

代码意思是:ID名称为"captcha_img_id"的元素显示等待100s,如果没有出现,抛出异常,通过上面方法就可以处理等待页面元素加载完全后进行相关功能操作。

你可能感兴趣的:(Selenium 实践(二)-设置等待时间)