元素操作(一)
一、等待----三种等待方式
1.强制等待
sleep(秒)
import time
time.sleep(5)
2.隐性等待
implicitly_wait(秒)
driver.implicitly_wait(10)
设置最长等待时间,在这个时间内加载完成,则执行下一步。
整个driver的会话周期内,设置一次即可,全局可用。
3.显性等待
明确等到某个条件满足之后,再去执行下一步操作。
程序每隔xx秒看一眼,如果条件成立后,则执行下一步,否则继续等待,直到超过最长设置时间,然后抛出TimeoutException。
WebDriverWait类:显性等待类。
WebDriverWait(driver,等待时常,轮询周期).until/until_not
expected_conditions模块:提供了一系列期望发生的条件。
presence_of_element_located:元素存在
visiblity_of_element_located:元素可见
element_to_be_clickable:元素可点击
- 使用之前,引入相关的库:
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
- 使用方法:
1)先确定元素的定位表达式
web_locator="xxx"
2)调用webdriverWait类设置等待总时长、轮询周期。并调用期until、until_not方法。
WebDriverWait(webdriver对象名,等待总时长,轮询周期).until(判断条件)
3)使用expected_conditions对应的方法来生成判断条件。
EC.方法名((定位方式,定位表达式))
例如:EC.presence_of_element_located((By.CSS_SELECTOR,web_locator))
例如:等待百度登陆的弹出框出现,再去操作弹出框
二、弹出框操作
弹出框有两种:
1、页面弹出框
2、windows弹出框
页面弹出框处理方式:
等待弹出框出现之后,再定位弹出框,再去操作弹出框里的元素
例如:百度登陆页面弹出框
windows弹出框处理方式:
1)等待弹框出现
WebDriverWait(driver,10).until(EC.alert_is_present))
2)使用switch_to方法先切换到windows弹出框
driver.switch_to.alert
3)Alert类提供了一系列的方法
dismiss():否
accept():是
text():获取弹出框的内容
sengkeys():发送字符

浙公网安备 33010602011771号