软件测试体系学习及构建(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命令和使用