Webdriver API之操作(二)
一、窗口截图
dirver.get_screenshot_as_file("D:\\report\\image\\xxx.jpg")
二、关闭窗口
dirver.close() #关闭当前窗口
driver.quit() #退出浏览器
三、操作Cookie
有时候我们需要验证浏览器中是否存在某个 cookie,因为基于真实的 cookie 的测试是无法通过白盒和 集成测试完成的。WebDriver 提供了操作 Cookie 的相关方法可以读取、添加和删除 cookie 信息。
webdriver 操作 cookie 的方法有:
get_cookies() 获得所有 cookie 信息
get_cookie(name) 返回有特定 name 值有 cookie 信息
add_cookie(cookie_dict) 添加 cookie,必须有 name 和 value 值
delete_cookie(name) 删除特定(部分)的 cookie 信息
delete_all_cookies() 删除所有 cookie 信息 下面通过 get_cookies()来获取当前浏览器的 cookie 信息。
from selenium import webdriver
driver = webdriver.Chrome() driver.get("http://www.youdao.com")
# 获得cookie信息
cookie= driver.get_cookies()
#将获得cookie的信息打印
print cookie
driver.quit()
四、验证码处理
1. 让开发去掉验证码
2. 让开发设置万能验证码
3. 验证码识别技术(光学字符识别)
4. 记录cookie
#访问xx网站
driver.get("http://www.xx.cn") #将用户名密码写入浏览器cookie
#username 1@1.com
driver.add_cookie({'name':'Login_UserNumber', 'value':'username'})
#password 111111
driver.add_cookie({'name':'Login_Passwd', 'value':'password'}) #再次访问xx网站,将会自动登录 driver.get("http://www.xx.cn/")
time.sleep(3)
....
driver.quit()
五、调用JavaScript
调用js一般处理有:控制滚动条,富文本,把隐藏的元素显示出来
1. 控制滚动条
js = "window.scrollTo(100,450);"
browser.execute_script(js)
2. 用js写入富文本
js = "document.getElementById('content_ifr').contentWindow.document.body.innerHTML=''你好,我是富文本!"
browser.execute_script(js)
3. 把隐藏的元素显示出来
六、处理HTML5视频
。。。。
七、上传文件
1. send_keys实现上传
(1)普通上传:普通的附件上传都是将本地文件的路径作为一个值放 input 标签中,通过 form 表单提交的时候将这个值提交给服务器。即可以将其看作是一个输入框,通过send_keys()指定本地文件路径的方式实现上传。
#打开上传功能页面
file_path = 'file:///' + os.path.abspath('upfile.html') driver.get(file_path) #定位上传按钮,添加本地文件 driver.find_element_by_name("file").send_keys('D:\\upload_file.txt')
(2)插件上传:一般是指基于 Flash 与 JavaScript 或 Ajax 等技术所实现的上传功能或插件。
2. Autolt实现上传
它是一个类似BASIC脚本语言的免费软件,被设计用来进行Windows GUI(图形用户界面)的自动化测试。利用模拟键盘按键,鼠标移动和窗口/控件的组合来实现自动化任务。
AutoItWindows Info 用于帮助我们识 Windows 控件信息。
CompileScript to.exe 用于将 AutoIt 生成 exe 执行文件。
RunScript 用于执行 AutoIt 脚本。
SciTE Script Editor 用于编写 AutoIt 脚本。
1 #点击打开上传窗口
2 driver.find_element_by_name("file").click()
3
4 #调用upfile.exe上传程序
5 os.system("D:\\upfile.exe")
6 driver.quit()
八、下载文件
Webdriver允许我们设置默认的文件下载路径。
只针对Firefox,所以也可以参考使用Autoit工具(上看)
1 #coding=utf-8
2 from selenium import webdriver
3 import os
4
5 fp = webdriver.FirefoxProfile()
6 # browser.download.folderList设置成 0 代表下载到浏览器默认下载路径;设置成 2 则可以保存到指定目录
7 fp.set_preference("browser.download.folderList",2)
8
9 #browser.download.manager.showWhenStarting
10 是否显示开始,Ture 为显示,Flase 为不显示
11 fp.set_preference("browser.download.manager.showWhenStarting",False)
12
13 #browser.download.dir,用于指定你所下载文件的目录。os.getcwd() 该函数不需要传递参数,用于返回当前的目录。
14 fp.set_preference("browser.download.dir", os.getcwd())
15
16 # browser.helperApps.neverAsk.saveToDisk
17 指定要下载页面的 Content-type 值,“application/octet-stream”为文件的类型。HTTP Content-type 常 用对照表:http://tool.oschina.net/commons
18
19 fp.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/octet-stream")
20
21 #下载文件的类型
22 driver = webdriver.Firefox(firefox_profile=fp)
driver.get("http://pypi.Python.org/pypi/selenium")
driver.find_element_by_partial_link_text("selenium-2").click()
Webdriver API之操作(二)的更多相关文章
- Webdriver API之操作(一)
一. 控制浏览器 1. 控制浏览器大小 driver.set_window_size(480,800) #浏览器宽480,高800显示 dirver.maximize_window() #浏览器最大化 ...
- WebDriver API——延时操作及元素等待
在自动化测试过程当中,受网络.测试设备等诸多因素的影响,我们经常需要在自动化测试脚本中添加一些延时来更好的定位元素来进行一系列的操作. 一般有这么几种方式: 1.implicitlyWait.识别对象 ...
- Webdriver API (二)
(转载) 1.3 打开测试页面 对页面对测试,首先要打开被测试页面的地址(如:http://www.google.com),web driver 提供的get方法可以打开一个页面: // And no ...
- selenium初识(二)——之webdriver API
配置完的环境之后,我们先来写一个小脚本: # __Author__:"Jim_xie" from selenium import webdriver from time impor ...
- WebDriver API——javascript的相关操作
有些时候webdriver是没法操作元素或浏览器的,这时候我们可以通过javascript来进行相关的操作,昨天在群里一个朋友定位一个显示框,总是无法定位点击,或者是点击无效,这个时候就可以用java ...
- Selenium2+Python:Webdriver API速记手册
由于web自动化常常需要控制浏览器行为和操作页面元素,相关函数又比较多,于是再此记下一份Webdriver API查阅文档以备不时之需. 参考:虫师<Selenium2自动化测试实战>,和 ...
- python+selenium自动化软件测试(第2章):WebDriver API
2.1 操作元素基本方法 前言前面已经把环境搭建好了,从这篇开始,正式学习selenium的webdriver框架.我们平常说的 selenium自动化,其实它并不是类似于QTP之类的有GUI界面的可 ...
- Selenium WebDriver Api 知识梳理
之前一直没有系统的梳理WebDriver Api的相关知识,今天借此机会整理一下. 1.页面元素定位 1.1.8种常用定位方法 # id定位 driver.find_element_by_id() # ...
- InfluxDB学习之InfluxDB的HTTP API查询操作
在 InfluxDB学习 的上一篇文章:InfluxDB学习之InfluxDB的HTTP API写入操作 中,我们介绍了使用InfluxDB的HTTP API进行数据写入操作的过程,本文我们再来介绍下 ...
随机推荐
- 第20篇 js高级知识---深入原型链
前面把js作用域和词法分析都说了下,今天把原型链说下,写这个文章费了点时间,因为这个东西有点抽象,想用语言表达出来不是很容易,我想写的文章不是简单的是官方的API的copy,而是对自己的知识探索和总结 ...
- Ubuntu下安装Redis并实现远程访问
之前的一篇随笔写到Redis在Windows下的安装,但目前好多大数据处理的服务是在Linux上的,所以想以Redis为例并实现在Windows上利用C#代码远程访问. 以在Ubuntu下为例,步骤如 ...
- [.net 面向对象程序设计深入](14)Redis——基础
[.net 面向对象程序设计深入](14)Redis——基础 很长一段时间没更新博客了,坚持做一件事,真不是件容易的事,后面我会继续尽可能的花时间更新完这个系列文章. 因这个系列的文章涉及的范围太大了 ...
- Select的逻辑处理顺序(Transact-SQL)
1. Select 语句基本写法 2. Select的逻辑处理顺序 SQL与其他编程语言不同的明显特征就是代码的处理顺序.在其他编程语言中,常见是按编写代码的先后顺序(从上之下)来处理.但在SQL中, ...
- java笔记---equals和==的区别
摔在这里几次,还是记下来吧.原文:http://www.cnblogs.com/shenliang123/archive/2012/04/16/2452156.html --------------- ...
- 2017-3-17 SQL server 数据库 视图,事务,备份还原,分离附加
1.视图:只能查看,不能增删改不能有重复列 create view 名字as查询语句 2.事务:保证流程的完整执行 begin tran --开始事务监控 被监控的代码 ... ...if @@ERR ...
- 【CNMP系列】VIM编辑器详解
缘起 大学的时候做过Linux内核驱动程序研发,之前写C语言就是用的Vim编辑器,当年的Vim还不如今天之强大,当时的插件也没有现在这么多,只是觉得这个编辑器能满足我想要的所有,查看Linux内核代码 ...
- Java开发过程中开发工具Eclipse中导入jar包的过程
欢迎欣赏我的第二篇随笔.我们在创建好一个动态网站项目之后,如果没有部署maven的情况下,你可以按照以下的方法,直接把要用的jar包导入你的工程中,而不用再部署maven. 例如在使用JDBC编程时需 ...
- webkit图片滤镜
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- docker使用Let’s Encrypt协议构建免费https协议
简介:我们可以把自己的image上传到dockerhub或者阿里云的docker镜像仓库,但在实际使用中我们很多时候都用的是自己的registry,便于内部的共享等等优点,docker镜像默认支持ht ...