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模式 !

——————————————————————————————————————————————————————————————————————

posted @ 2020-09-26 21:33  九霄风云  Views(267)  Comments(0)    收藏  举报