web自动化之selenium
一、Selenium(http://www.selenium.org/)
Web自动化测试工具。它支持各种浏览器,包括Chrome,Safari,Firefox等主流界面式浏览器,如果你在这些浏览器里面安装一个Selenium插件,那么便可以方便的实现Web界面的测试。换句话说叫 Selenium 支持这些浏览器驱动
模拟浏览器的操作,例如表单操作,点击事件,键盘输入
二、内容
安装、定位web元素、鼠标操作、键盘输入、窗口切换、cookie操作,调用js代码,窗口截屏,文件上传,警告框处理,多表单切换,等待.....
chrome浏览器驱动:https://sites.google.com/a/chromium.org/chromedriver/downloads
国内阿里云镜像:https://npm.taobao.org/mirrors/chromedriver
https://sites.google.com/a/chromium.org/chromedriver/
三、操作
from selenium import webdriver
wd = webdriver.Chrome() # 创建一个对象
1. 基础操作
wd.get('http://baidu.com') # 打开一个网页
title = wd.title # 获取网页标题
print(title) # 打印输出
wd.set_window_size(400,800) # 设置窗口大小
wd.maximize_window() #窗口最大化
2. 获取元素
wd.find_element_by_link_text('设置').click() # 获取链接值,并执行点击操作
wd.find_element_by_link_text('搜索设置').click() # 获取链接值,执行点击操作
sel = wd.find_element_by_xpath('//*[@id="nr"]') # 通过xpath获取下拉列表
from selenium.webdriver.support.select import Select # 下拉列表操作的模块
Select('sel').select_by_value('50') # 更改下拉列表设置
3.多列表切换
实现 mail.126.com 的登录
from selenium import webdriver
import time
wd = webdriver.Chrome()
wd.get('https://mail.126.com/')
# wd.find_element_by_name('email').clear()
# wd.find_element_by_name('email').send_keys('zhanghao') # --- 报错,找不到元素
time.sleep(2)
fr = wd.find_element_by_id('x-URS-iframe') # 获取表单
wd.switch_to_frame(fr) # 切换到该表单中
time.sleep(3)
wd.find_element_by_name('email').clear() # 清空该元素中的值
wd.find_element_by_name('email').send_keys('zhanghao') # 对改元素发送值:zhanghao
4.窗口关闭
wd.close() 或者 wd.quit()
5.支持无窗口模式
from selenium import webdriver
from selenium.webdriver.chrome.options import Options # webdriver 选项设置模块
import time
chrome_options = Options() # 选项初始化
chrome_options.add_argument('--headless') # 无窗口模式设置
wd = webdriver.Chrome(chrome_options=chrome_options)
wd.get('http://baidu.com')
title = wd.title
print(title)
time.sleep(2)
wd.close()
web自动化之selenium的更多相关文章
- WEB自动化(Python+selenium)的API
在做Web自动化过程中,汇总了Python+selenium的API相关方法,给公司里的同事做了第二次培训,分享给大家 ...
- 技术分享 | Web自动化之Selenium安装
Web 应用程序的验收测试常常涉及一些手工任务,例如打开一个浏览器,并执行一个测试用例中所描述的操作.但是手工执行的任务容易出现人为的错误,也比较费时间.因此,将这些任务自动化,就可以消除人为因素.S ...
- web自动化:selenium原理和元素定位(一)
一. Selenium2 WebDriver 当Selenium2.x提出了WebDriver的概念后,它提供了完全另外的一种方式与浏览器交互 那就是利用浏览器原生的API,封装成一套更加面向对象的S ...
- 【python+selenium的web自动化】- Selenium WebDriver原理及安装
简单介绍 selenium selenium是一个用于测试web网页的自动化测试工具,它直接运行在浏览器中,模拟用户的操作.
- web自动化之selenium(三)文件上传
1.上传标签为input #若上传文件的标签为<input>可以直接定位标签,然后send_keys(文件路径)可以直接上传 2.利用第三方软件Autoit上传 1.下载Autoit:ht ...
- web自动化之selenium(二)
selenium自动化测试框架 一.什么是自动化测试 利用软件(或者说机器代替人)实现全部或者部分测试任务的过程 二.为什么要进行自动化测试 自动化测试可以完成许多手工测试无法实现或难以实现的功能 ...
- web自动化之selenium(一)
自动化搭建环境 1.自动搭建(一) #安装 pip install webdriver-helper 1.1示例 from webdriver_helper import * #get_webdriv ...
- web自动化之selenium(六)利用坐标点定位
这是通过第三发库实现对元素的定位,因为在无法定位元素的时候,只能通过外部来定位,此时就可以使用pyautogui模块,操作鼠标,模拟人进行操作 # 使用注意事项,不要过于的依赖它 1.使用时需要在通过 ...
- web自动化,selenium环境配置
1,首先我们需要在python编译器中添加selenium插件,我用的是pycharm 点击下方的Terminal,然后在命令行输入: pip install selenium 也可以在设置里面手动添 ...
随机推荐
- 《移动Web前端高效开发实战》笔记1——静态布局在移动端上的自适应
1.整体缩放 整体缩放可以用在营销活动页,营销活动可能因为设计美观需求必须使用背景图片而非背景色,因此需要考虑背景图适应屏幕大小.开发者可以用320像素的宽度作为基础宽度(高度可以固定),然后通过计算 ...
- mitmproxy抓包软件在mac上边的安装
官网介绍:mitmproxy is a free and open source interactive HTTPS proxy. mitmproxy 是用 Python 和 C 开发的一个中间人代理 ...
- PostgreSQL缓存
目录[-] pg_buffercache pgfincore pg_prewarm dstat Linux ftools 使用pg_prewarm预加载关系/索引: pgfincore 输出: 怎样刷 ...
- Android(java)学习笔记116:BroadcastReceiver之 静态注册 和 动态注册
1. 广播接受者>什么是广播.收音机.电台:对外发送信号.收音机:接收电台的信号. >在android系统里面,系统有很多重要的事件: 电池电量低,插入充电器,sd卡被移除,有电话打出去, ...
- IOS CoreData 多表查询(下)
http://blog.csdn.net/fengsh998/article/details/8123392 在iOS CoreData中,多表查询上相对来说,没有SQL直观,但COREDATA的功能 ...
- 将数据表中的数据添加到ComboBox控件中
实现效果: 知识运用: ComboBox控件的DataSource 属性 //获取或设置ComboBox的数据源 public Object DataResouce{get;set;} //属性值:任 ...
- Sublime +Markdown+OmniMarkupPreviewer 搭建实时预览的markdown编辑器
浏览器实时预览 <meta http-equiv="refresh" content="0.1"> auto save 的配置 {"aut ...
- BigDecimal and double
BigDecimal类 对于不需要任何准确计算精度的数字可以直接使用float或double,但是如果需要精确计算的结果,则必须使用BigDecimal类,而且使用BigDecimal类也可以进行大数 ...
- OO作业第三单元总结
目录 一.JML语言理论基础及应用工具链 二.部署JMLUnitNG,自动生成测试用例 三.架构设计 第一次作业 第二次作业 第三次作业 四.Bug分析 五.心得体会 一.JML语言理论基础及应用工具 ...
- Redis五种数据结构解析
Redis是一个开源的Key-Value存储引擎,它支持string.hash.list.set和sorted set等多种值类型.由于其卓越的性能表现.丰富的数据类型及稳定性,广泛用于各种需要k/v ...