web自动化-三种等待/三种切换

本文详细介绍了在Web自动化测试中,如何进行三种等待(强制等待、隐形等待和显性等待)以及三种切换操作(frame切换、窗口切换和alert切换)的实践方法。显性等待使用WebDriverWait配合expected_conditions模块实现精确等待,frame切换则通过driver.switch_to.frame进行,窗口切换则涉及句柄的管理和切换。最后提到了alert切换的两种方式。
摘要由CSDN通过智能技术生成

一、三种等待方式

  1. 强制等待
    time.sleep(10):如果设置10秒,即使页面已经加载出来了,也不执行操作,必须够10秒才能执行下面的操作
  2. 隐形等待
    driver.implicitly_wait(30):设置最长的等待时间,在这个时间内加载完成,则执行下一步操作,整个driver的会话期内,设置一次即可,全局可用,应用度上不灵活
from selenium import webdriver
driver = webdriver.Chrome()
#全局等待-隐性等待
driver.implicitly_wait(10)
driver.get('https://www.baidu.com/')
driver.maximize_window()
driver.find_element_by_xpath('//div[@id="u1"]//a[@name="tj_login"]').click()
driver.find_element_by_id('TANGRAM__PSP_11__footerULoginBtn').click()
  1. 显性等待
    明确等到某个条件满足后,再去执行下一步操作,程序每隔xx秒看一眼,如果条件成立了,则执行下一步,否则继续等待,直到超过设置最长时间,然后抛出TimeoutException
    WebDriverWait()类,显性等待类,
    用法:WebDriverWait(driver,等待时间,轮询周期).until()/until_not()
    ecpected_conditions模块:提供一系列发生的条件
    presence_of_element_located:元素存在
    visibility_of_element_located:元素可见
    element_to_be_clickable :元素可点击

使用方法

1、先确定元素的定位表达式
2、调用WebDriverWait()类设置等待总时长,轮询周期,并调用until()、until_not()方法
WebDriverWait(driver,等待时间,轮询周期).until()/until_not(判断条件)
3、使用ecpected_conditions对应的方法来生成判断条件
EC.类名(定位方式,定位表达式)
例:等待百度登陆的弹框出现,再去操作弹出框

#显性等待需要引入三个库
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('https://www.baidu.com/')
driver.maximize_window()
driver.find_element_by_xpath('//div[@id="u1"]//a[@name="tj_login"]').click()
id="TANGRAM__PSP_11__f
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值