python UI自动化之元素定位等待类型

UI自动化经常出现定位元素失败的情况,因为页面还在加载并没有加载完的时候,定位已经在执行了,就会出现页面根本没有找到要定位的元素;

影响页面加载速度因素:页面大小,服务器性能,网络速度,执行机性能

碰到定位不到元素的情况就需要设置等待了,等待类型常用的方式分为三中:强制等待,隐式等待,显式等待

1.强制等待:固定等待n秒,执行下一步操作

import time

time.sleep(n)

2.隐式等待:设置最长等待时间n秒,在这个时间内已经加载完成,自动化执行下一步;最多等待时间n秒仍未完成,不再等待直接执行下一步

from selenium import webdriver

driver =  webdriver.Chrome()
 #实例化直接调用implicitly_wait方法设置最大时间,同一页面后续的find_element方法都会有上面的隐式等待

driver.implicitly_wait(n)

driver.find_element_by_xpath("//input[@id=‘kw’]").click()

3.显式等待:定位元素时,每隔n秒定位该元素,如果定位成功,就直接返回该元素,如果达到最大等待时间m秒仍然未定位成功,那么就返回超时错误

from selenium.webdriver.support.wait import WebDriverWait

from selenium.webdriver.support import expected_conditions as EC

from selenium.webdriver.common.by import By

WebDriverWait(driver,m,n).until(EC.visibility_of_element_located((By.ID,"login_user")))

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值