selenium-常用操作总结
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.get('https://******')
ele = driver.find_element(By.ID, 'xxx')
1.设置浏览器窗口大小
driver.set_windows(800, 800)
2.控制浏览器后退、前进
driver.back()
driver.forward()
3.模拟浏览器刷新
driver.refresh()
4.webdriver操作
清除文本
ele.clear()
模拟按键输入
ele.send_keys('hello world')
单击元素
ele.click()
提交表单(不提供搜索按钮的搜索框)
ele.send_keys('xxx')
ele.submit()
返回元素尺寸
size = ele.size
获取元素文本
text = ele.text
获取属性值(可以是id/name/type等属性)
attribute = ele.get_attribute('id')
元素是否可见(返回结果True or False)
result = ele.is_displayed()
5.鼠标操作
Webdriver中,与鼠标操作相关的方法都封装在ActionChains类中
from selemiun.webdriver import ActionChans
鼠标悬停
move_to_element()
右击
context_click()
双击
double_click()
拖动
drag_and_drop()
执行ActionChains类中存储的所有行为
perform()
例句
ActionChans(driver).move_to_element(ele).context_click().perform()
6.键盘操作
删除键(BackSpace)
ele.send_keys(Keys.BACK_SPACE)
空格键(Space)
ele.send_keys(Keys.SPACE)
制表键(Tab)
ele.send_keys(Keys.TAB)
回退键(Esc)
ele.send_keys(Keys.ESCAPE)
回车键(Enter)
ele.send_keys(Keys.ENTER)
全选(Ctrl+a)
ele.send_keys(Keys.CONTROL, 'a')
复制(Ctrl+c)
ele.send_keys(Keys.CONTROL, 'c')
剪切(Ctrl+x)
ele.send_keys(Keys.CONTROL, 'x')
粘贴(Ctrl+v)
ele.send_keys(Keys.CONTROL, 'v')
键盘F1...F12
ele.send_keys(Keys.F1) ... ele.send_keys(Keys.F12)
7.获得验证信息
获取当前页面的标题
title = driver.title
获取当前页面的URL
url = driver.current_url
获取当前页面元素的文本信息
text = ele.text
8.设置元素等待
from selemiun.webdriver.support.ui import webdriverWait
from selemiun.webdriver.support import expected_conditions as EC
显式等待: 等待某个条件成立则继续执行,否则达到最大时长抛出超时异常
element = webdriverWait(driver, 10, 0.5).until(EC.visibility_of_element_located((By.ID, 'xxx')))
element.send_keys('xx')
超时时间为10秒,每0.5秒检查一次,直到'xxx'元素是否可见,才会继续执行下面操作,超过10秒则抛出异常:NoSuchElementExcpetion
隐式等待
通过一定的时长等待页面上某个元素加载完成。如果超出了设置的时长元素还没有被加载,则抛出NoSuchElementException异常。它的作用范围就是Webdriver对象实例的整个生命周期。
driver.implicitly_wait(20)
9.多表单切换
login_frame = driver.find_element(By.CSS_SELECTOR, 'xxxx')
driver.switch_to.frame(login_frame)
10.多窗口切换
获取当前窗口句柄
index_windows = driver.current_window_handle
获取所有窗口句柄
all_widows = driver.window_handles
第n个窗口
all_widows[n]
切换窗口
driver.switch_to.window(index_windows)
11.警告框处理 (适用于alert、confirm、prompt)
定位到警告框
alert = driver.switch_to.alert
获取警告框中的文字信息
alert_text = alert.text
接受警告框
alert.accept()
解散现有警告框
alert.dismiss()
在警告框输入文本(如果支持)
alert.send_keys('xxx')
12.下拉框处理
WebDriver提供了Select类来处理下拉框
Select类用于定位'select'标签
<select id="nr">
<option value="10">10条</option>
<option value="20">20条</option>
<option value="30">30条</option>
<option value="40">40条</option>
</select>
from selenium.webdriver.support.select import Select
sel = driver.find_element(By.XPATH, '//select[@id='nr']')
通过value值定位下拉选项
Select(sel).select_by_value('20')
通过text值定位下拉选项
Select(sel).select_by_visible_text('40条')
通过选项顺序定位选项(从0计数)
Select(sel).select_by_index(0)
13.上传文件
input上传,直接定位元素,输入文件路径名称即可
ele.send_keys(file_path)
插件上传:一般指Flash、Javascript、Ajax等技术实现上传功能
pass
14.下载文件
pass
15.窗口截图
driver.save_screenshot(file_path)
16.关闭窗口
关闭当前窗口
driver.close()
关闭浏览器
driver.quit()
selenium-常用操作总结的更多相关文章
- selenium常用操作,查找元素,操作Cookie,获取截图,获取窗口信息,切换,执行js代码
目录: 1. 常用操作 2. 查找元素 3. 操作Cookie 4. 获取截图 5. 获取窗口信息 6. 切换 7. 执行JS代码 简介 selenium.webdriver.remote.webdr ...
- selenium 常用操作
官方文档: https://selenium-python.readthedocs.io/api.html#selenium.webdriver.remote.webdriver.WebDriver. ...
- Selenium常用操作汇总二——如何操作select下拉框
下面我们来看一下selenium webdriver是如何来处理select下拉框的,以http://passport.51.com/reg2.5p这个页面为例.这个页面中有4个下拉框,下面演示4种选 ...
- Selenium常用操作汇总二——如何操作cookies(转)
Web 测试中我们经常会接触到Cookies,一个Cookies主要属性有”所在域.name.value.有效日期和路径",下面来讲一下怎么操作Cookies. import java.ut ...
- Selenium常用操作汇总二——如何处理alert、confirm、prompt对话框
alert.confirm.prompt这样的js对话框在selenium1.X时代也是难啃的骨头,常常要用autoit来帮助处理. 试用了一下selenium webdriver中处理这些对话框十分 ...
- selenium常用操作学习笔记
一,弹窗处理(推荐文章:https://blog.csdn.net/huilan_same/article/details/52298460) selenium提供switch_to方法定位弹窗的对话 ...
- selenium常用操作
1.访问页面获得源码 browser.get(url) browser.page_source 2.查找单个元素:返回一个标签 find_element_by_id ==>id选择器 find ...
- Selenium常用操作汇总二——如何把一个元素拖放到另一个元素里面(转)
Q群里有时候会有人问,selenium webdriver怎么实现把一个元素拖放到另一个元素里面.这一节总一下元素的拖放. 下面这个页面是一个演示拖放元素的页面,你可以把左右页面中的条目拖放到右边的 ...
- Selenium常用操作汇总二——如何得到弹出窗口
在selenium 1.X里面得到弹出窗口是一件比较麻烦的事,特别是新开窗口没有id.name的时候.当时还整理了处理了几种方法,详见:http://seleniumcn.cn/read.php?ti ...
- Selenium常用操作汇总二——iframe的处理
有时候我们在定位一个页面元素的时候发现一直定位不了,反复检查自己写的定位器没有任何问题,代码也没有任何问题.这时你就要看一下这个页面元素是否在一个iframe中,这可能就是找不到的原因之一.如果你在一 ...
随机推荐
- PropertySheet外壳扩展AppWizard
下载source files - 39 Kb 下载Wizard - 17 Kb 本文旨在简化属性表外壳扩展的实现.它紧接我的第一篇文章 处理上下文菜单壳扩展和灵感 由Michael Dunn最优秀的系 ...
- 【Flutter Widgets大全】电子书开源
[Flutter Widgets大全]是老孟耗费大量精力整理的,总共有330多个组件的详细用法,开源到Github上,希望可以帮助到大家,开源不易,点个赞可不可以. [Flutter Widgets ...
- fastjson配置序列化过滤转换
@Configuration@EnableWebMvcpublic class WebConfig implements WebMvcConfigurer { @Override public voi ...
- 自定义Antd Pro 默认元素
概要 通用元素 修改的方式 主页面 标签上的图标 logo 和 系统名称 footer 的配置 loading 页面 最终效果 概要 使用 Antd Pro 来开发前端项目时, 生成的项目模板中, 一 ...
- FreeType2使用总结(转)
一.FreeType2简介 1. 是一个免费.开源.可移植且高质量的字体引擎: 2. 支持多种字体格式文件,并提供了统一的访问接口: 3. 支持单色位图.反走样位图渲染,这使字体显示质量达到Mac的水 ...
- 多测师讲解自动化测试 _RF连接数据库_高级讲师肖sir
RF连接数据库:1.Connect To Database(连接数据库)2.Table Must Exist(表必须存在)3.Check If Exists In Database(查询某条件是否存在 ...
- Spring Boot 系列:最新版优雅停机详解
爱生活,爱编码,本文已收录架构技术专栏关注这个喜欢分享的地方. 开源项目: 分布式监控(Gitee GVP最有价值开源项目 ):https://gitee.com/sanjiankethree/cub ...
- 添加Google网络地图功能
在MeteoInfo中添加了Google网络地图功能.打开MeteoInfo软件,选中图层管理区的一个Map Frame(New Map Frame),点击鼠标右键,在弹出菜单中点击Add Web L ...
- [leetcode] 剑指 Offer 专题(一)
又开了一个笔记专题的坑,未来一两周希望能把<剑指Offer>的题目刷完
- 接口管理平台Yapi
1.介绍 YApi 是由去哪儿移动架构组推出的一款开源项目,是高效.易用.功能强大的 api 管理平台,旨在为开发.产品.测试人员提供更优雅的接口管理服务. 官网:https://yapi.ymfe. ...