软件测试体系学习及构建(26)Selenium使用丨WebDriverAPI常用操作

Posted NoamaNelson

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了软件测试体系学习及构建(26)Selenium使用丨WebDriverAPI常用操作相关的知识,希望对你有一定的参考价值。

(26)Selenium使用丨WebDriverAPI常用操作

1 使用前提

  • 1.导入包:from selenium import webdriver
  • 2.初始化一个浏览器对象:driver = webdriver.Chrome()

2 浏览器相关方法和说明

方法说明
get(url)访问目标url
back()后退前一个页面
forward()前进后一个页面
refresh()刷新页面
maximize_window()最大化窗口
minimize_window()最小化窗口
fullscree_window()全屏窗口
get_window_size()获取窗口大小
set_window_size(x,y)设置窗口大小
close()关闭当前浏览器窗口
quit()退出浏览器进程
switch_to_active_element返回唯一焦点所在元素
switch_to_alert()切换到alert
switch_to_default_content()切换到主窗口
switch_to_frame(索引or名称or元素)切换到frame或iframe
switch_to_window(名称or句柄)切换到指定窗口
current_url获取页面url地址
title获取页面标题
name获取当前实例的浏览器名称
page_source获取当前页面的源码
current_windows_handle获取当前页面的句柄
Window_handles获取所有回话的窗口句柄

3 获取页面元素的相关信息

方法说明
.tag_name获取标签名
.size获取元素大小
.text获取元素的文本
get_attribute(’id/name/value等‘)获取元素的属性信息
.is_displayed()判断元素是否可见
.is_enabled()判断元素是否可用
.is_selected()判断元素是否是选中状态

4 鼠标操作

  • 1.导入类,from selenium.webdriver.common.action_chains import ActionChains
  • 2.定位要操作的元素
  • 3.固定写法,ActionChains(driver).xxx操作(pars).perform()
方法说明
click()鼠标单击
ActionChains(driver).click(ele).perform()鼠标单击
ActionChains(driver).double_click(ele).perform()鼠标双击
ActionChains(driver).context_click(ele).perform()鼠标右击
ActionChains(driver).move_to_element(ele).perform()鼠标指针悬浮操作
ActionChains(driver).drag_and_drop(source,target).perform()鼠标拖动操作
ActionChains(driver).key_down(ele).perform()按下鼠标左键

5 键盘操作

方法说明
send_keys('value')输入文字
clear()清空内容
  • 如果使用组合键,需要导入包from selenium.webdriver.common.keys import Keys
  • 组合方法如下:
方法说明
send_keys('keys.CONTROL','a')Ctrl+A
send_keys('keys.CONTROL','c')Ctrl+C
send_keys('keys.CONTROL','v')Ctrl+V
send_keys(Keys.ENTER)回车
ActionChains(driver).key_down(Keys.CONTROL).perform() ele.click()按下ctrl. 单击元素

6 等待机制

6.1 隐性等待

  • webdriver会在预定好的时间内持续地检测元素是否找到,一旦找到,就执行后续的动作,超过了预定时间未找到,就报错(全局等待),使用.implicitly_wait(time)
  • 会减缓测试速度-删除
  • 需要整个页面加载完成才执行-图片,js
  • 隐形会干扰显性,最好不要和显性等待一起使用

6.2 显性等待

  • webdriver等待页面加载完成,找到某个条件发生后再继续执行后续代码,如果超过设置时间检测不到则抛出异常(某个特定元素设置的等待)
  • 导入类:from selenium.webdriver.support.ui import WebDriverWait
.until()
.until_not()
  • 导入模块:from selenium.webdriver.support import expected_conditions
title_is(title)
title_contains(title)
element_to_be_selected(element)
  • 语法:WebDriverWait(driver,timeout).until(可执行的方法,超时后返回的信息)
  • 实例:WebDriverWait(self.driver,10).until(expected_conditions.title_is(‘管理系统’))
  • 正常使用场景:初始化:wait=WebDriverWait(self.driver,10) 使用:self.wait.until(expected_conditions.title_is(‘管理系统’))

6.3 强制等待

  • 固定等待多长时间
  • time.sleep(time)

7 截图

.get_screenshot_as_file('D:\\selenium.png')

『全栈测试技术,分享,共勉,共进,提升』


【特别说明】:知识来源于网络、各种资料、书本、网站等,本文仅用于学习使用,不做他用,如果涉及版权问题,请联系博主删除,谢谢

以上是关于软件测试体系学习及构建(26)Selenium使用丨WebDriverAPI常用操作的主要内容,如果未能解决你的问题,请参考以下文章

软件测试体系学习及构建(24)Selenium使用丨安装和注意事项

软件测试体系学习及构建-软件测试环境介绍

软件测试体系学习及构建-Windows系统常用DOS命令和使用

软件测试体系学习及构建-HTML之元素属性标题段落

软件测试体系学习及构建(11)-测试基础之软件测试定义及流程

软件测试体系学习及构建-HTML之布局表单框架颜色