大家好,欢迎来到IT知识分享网。
八大元素定位
1 id id是唯一
find_element(By.ID,‘id名’)
2 name name在当前页面不一定唯一
3 class name
html规定class来指定元素的类名
4 tagname
标签名,每个页面存在大量相同的标签,不太可能使用这个。
6partial link text
partial link text是对link text的补充,有些文本链接会比较长,此时可以取部分文本进行定位。
7 xpath 可以cv
8 css
就是页面标签的层级,根据页面一层一层的找
寻找方式:找寻多个
find_elements
定位之后是对元素进行操作
获取当前页面的url: currrnt_url
clear():清除文本
send_keys(value):按键事件
点击事件
click() 单机 double——click()双击
tille:页面title
text:标签文本
get_attrbute(name):获得属性值,文本框中的值使用value属性名
is_displayed()设置该元素是否用户可见
浏览器操作
控制浏览器窗口大小
Set_window_size()
控制浏览器前进,后退
back() forward()
模拟浏览器刷新
refresh()
截屏操作
driver.save_scrrrnshot(r’’e:\abc.png””)
模拟浏览器关闭
close()关闭单个页面 quit()关闭整个页面
多窗口浏览器操作
句柄 handler(每一个页面都有一个值,对一个页面来说是唯一的(页面标识)drive是要绑定句柄的,你的driver只能控制绑定句柄的页面,打开新的页面就是新的handle
获取当前页面的句柄
driver.current_window_handle
拿到所有页面的句柄
driver.window_handle
页面传递句柄
driver.switch_to_window(handle[1])
鼠标,键盘操作
需要导入包
from selenium。webdriver。common。action_chains import ActionChains
context_click()右击
double_click()双击
drag_and_drop()拖动
move_to_element() 鼠标悬停
键盘与警告窗操作
keys()类提供了江畔上几乎所有的按键的方法,需要导入一下包
from selenuim.webdriver.common.keys import keys
警告框
alert
confirm
prompt
方法 switch_to_alert/confirm/prompt()
可以进行什么操作:
text。返回文本信息
accept() 接受现有警告框
dismiss() 放弃现有警告框
send_keys(keysToSend)发送文本到警告框
模式窗口 操作限定框内
非模式窗口
多表单操作
多表单(一个窗口上):
在一个页面中可以嵌套另外一个页面,如frame、iframe技术,这是现在很多web应用使用的一种方式,webdriver对象只能在一个页面(默认外层)中定位元素,需要一种将driver从外层切换给内层使用,才能对内层的对象进行处理
api:driver。switch_to.frame()
第一种方式 可以给id或者name
driver.switch_to_frame
第2种方式 可以传参
driver.switch_to_frame
iframeOBJ = driver_.find_element(By_XPATH,’’)
元素等待
在UI自动化测试中,必然会遇到环境不稳定,网络慢的情况,这时如果不做任何处理的话,代码会由于没有找到元素而报错,另外,一种情况就是页面使用ajax异步加载机制。这时我们就要用到wait,而在Selenium中,我们可以用到三种等待,每一种等待都有自己的优点或缺点。
第一种:time.sleep(固定等待)
在开发自动化框架过程中,最忌讳使用python自带模块的time的sleep方式进行等待,虽然可以自定义等待时间,但当网络条件良好时,依旧按照预设定的时间继续等待,导致整个项目的自动化时间无限延长,不建议使用
(注:脚本调试过程时,还是可以使用的,方便快捷)
隐式等待对整个driver周期都起作用,在最开始设置一次就可以了。不要当作固定等待使用,到哪都来一下隐式等待。
第三种:WebDriverWait(显式等待)
等待元素
WebDriverWait是Selenium提供得显示等待模块引入路径:
from selenium.webdriver.support.wait import WebDriverWait
参数 | 说明 |
---|---|
driver | 传入WebDriver实例 |
timeout | 超时时间,等待的最长时间 |
poll_frequency | 调用until或until_not中的方法的间隔时间,默认是0.5秒 |
ignored_exceptions | 忽略的异常 |
参数 | 说明 |
---|---|
method | 在等待期间,每隔一段时间调用这个传入的方法,直到返回值不是false |
message | 抛出timeoutException,将message传入异常 |
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/158811.html