WebDriver API 之常见操作
浏览器操作:
最大化:maximize_window()
最小化:minimize_windows()
设置窗口大小:set_window_size(width, heigth)
前进/后退:forward( ) back( )
关闭当前窗口/浏览器:close() quit()

获取页面标题和当前页面url:
获取页面标题:title
获取页面url:current_url
页面刷新:refresh()

元素操作:
clear():清除元素内容
send_keys():向元素输入内容
click():单击元素
size:返回元素尺寸
text:返回元素文本
get_attribute(obj):返回元素某个属性的值
location:元素的坐标
page_source:获取网页源码


示例:



鼠标事件:
context_click(),右击
double_click(),左键双击
drag_and_drop,拖动
drag_and_drop_by_offset(),拖动到指定位置
move_to_element(),悬停
click_and_hold(),单击并按住不放

下拉框:
通过value值选择:select_by_value('value')
通过文本选择:select_by_visible_text('text')
通过索引选择:select_by_index(index),索引从0开始


浏览器多窗口处理:
每一个浏览器窗口都有一个唯一的标识符,句柄,通过句柄来判断当前处于哪一个浏览器窗口,webdriver中提供了相应方法来进行浏览器窗口的切换
window_handles,获取所有浏览器窗口的句柄
current_window_handle,获取当前浏览器窗口句柄
switch_to.window('handle'),切换到指定浏览器窗口
close(),关闭当前浏览器窗口

页面多表单(多框架处理):
switch_to.frame(),切换到指定表单
switch_to.default_content(),切换到最外层表单
switch_to.parent_frame(),切换到上一级表单

层级定位:先定位A元素,然后定位A下的元素

警告框处理:
定位警告框:switch_to.altert()

accept,接受,相当于点击【确定】
dismiss,解散,相当于点击【取消】

定位一组对象:定位到元素后进行批量操作
find_elements_by_xxxx(),返回一个列表

文件上传:
使用input标签实现的上传:调用send_keys()方法将需要上传的文件路径发送到指定元素即可
非input标签实现的上传:借助AutoIt,使用 SendKeys第三方库 ,使用win32 GUI等工具实现上传

截图:
一般在执行用例时,如果用例失败,则将当前窗口截图保存
方法:get_screenshot_as_file('imgname')

验证码:
屏蔽验证码功能
将验证码固定
Python-tesserct模块识别验证码
键盘事件:
方法:send_keys(cmd)向指定元素发送键盘指令
Keys.BACK_SPACE,删除
Keys.SPACE,空格
Keys.TAB,横向制表符
Keys.ENTER,回车
Keys.CONTRAL,'a',全选
Keys.CONTRAL,'c',复制
Keys.CONTRAL,'x',剪切
Keys.CONTRAL,'v',粘贴
Keys.END,翻到页面底部
Keys.HOME,翻到页面顶部
Keys.PAGE_UP,向上翻页
Key.PAGE-DOWN,向下翻页

多浏览器处理:
通过对代码的改造,实现自动化脚本对多浏览器的支持。
通过传递不同的参数测试不同的浏览器,用来实现对浏览器的兼容性测试
注意: 要先将各个浏览器的驱动配置好,将browser设置为环境变量,通过传入环境变量的方式配置不同的浏览器

启动的时候设置browser使用的浏览器驱动,就可以进行多浏览器处理了
Mac:browser=Chrome pytest test.py
Windows:在windows下比较特殊,要使用windows下的set来给变量赋值哦。
> set browser=Chrome
> pytest test.py
这里小伙伴们要记住切换成pytest来执行哦,因为只有pytest解释器才能识别相应的测试用例
至于执行JS脚本的方法,此处先不多说,后续将会单独持续更新,想了解的小伙伴加个关注哦。
以上就是我们在做web自动化时经常使用的一下webdriver api
接下来将会详细介绍怎么样一步步实现PageObject模式 !
——————————————————————————————————————————————————————————————————————


浙公网安备 33010602011771号