软件测试--selenium脚本编写注意点(一)

在通过python+selenium编写ui自动化脚本的时候,我遇到过很多需要注意的点,今天分享给大家一下。

一、睡眠时间

1、 强制等待时间 sleep()
必须导入time包后才可以使用,强制等待生效时间=页面跳转时间+sleep()设置休眠时间

强制等待时间使用语法:sleep(s) s表示时间,以秒为单位 例:sleep(2) 休眠2s

2、显示等待时间 WebDriverWait()

必须导入WebDriverWait包才可以使用,显示等待时间是针对单个元素生效的,当在规定时间内找到了对应元素,则执行下一步操作。

显示等待时间使用语法:
WebDriverWait(x,y,z).until(lambda x:x.find_element_by_元素定位方法(“对应元素方法的值”))

x表示网页窗口对象
y表示总等待时间(s)
z表示等待过程中,每隔多久查看一次元素,单位s

ntil是固定格式,可以理解为直到元素定位到为止,lambda x:x是一个匿名函数构建的方法,这里不太好理解可以理解为固定格式lambda总体就是网页窗口对象,而后面的.find_element_by_…就是援用之前的定位方法

3、隐式等待时间 implicitly_wait()

智能等待时间,是针对全局的元素都生效,不需要导入包。当在规定时间内找到了对应元素,则执行下一步操作。

隐等待时间使用语法: 网页对象名.implicity_wait()
from selenium import webdriver
from time import sleep #导入强制等待时间的包
from selenium.webdriver.support.ui import WebDriverWait #导入显示等待时间的包
dr = webdriver.Firefox()
dr.maximize_window()
dr.implicitly_wait(5) #隐式时间等待,智能等待,针对于全局
dr.get(“https://www.baidu.com”)
sleep(2) #休眠2s
a = WebDriverWait(dr,10,2).until(lambda x:x.find_element_by_id(“kw”)) #显示等待时间,针对于单个元素进行时间的等待
a.send_keys(“123”)

总结:只针对一个元素进行时间的等待,要是找不到该元素则会一直消耗完所有的等待时间才进行下一步

二、定位alert弹出框

alert弹出框包含三种:
alert 提醒对话框
confirm 确认对话框
prompt 要求用户输入,然后返回结果的对话框

1、定位方法

switch_to.alert:定位到alert/confirm/prompt
text:返回alert/confirm/prompt 中的文字信息。
accept:点击确认按钮。
dismiss:点击取消按钮,如果有的话。
send_keys:输入值,这个alertconfirm 没有对话框就不能用了,不然会报错。

2、alert用法

在这里插入图片描述
3、confirm用法

在这里插入图片描述
4、prompt用法

在这里插入图片描述

接口测试推荐使用国产接口测试和接口文档生成工具:apipost

软件测试--selenium脚本编写注意点(一)_第1张图片

你可能感兴趣的:(软件测试,selenium)