有时候我们在测试一个 web 应用时会出现多个浏览器窗口的情况,在 selenium1.0 中这个问题比较难处理.webdriver 提供了相关相方法可以很轻松的在多个窗口之间切换并操作不同窗口上的元素.图 3.10要想在多个窗口之间切换,首先要获得每一个窗口的唯一标识符号(句柄) .通过获得的句柄来区别分不同的窗口,从而对不同窗口上的元素进行操作.#coding=utf-8from selenium import webdriverimport timedriver = webdriver.F…
1.1.浏览器最大化在统一的浏览器大小下运行用例,可以比较容易的跟一些基于图像比对的工具进行结合,提升测试的灵活性及普遍适用性.比如可以跟 sikuli 结合,使用 sikuli 操作 flash.#coding=utf-8from selenium import webdriverdriver = webdriver.Firefox()driver.get("http://www.baidu.com")print "浏览器最大化"driver.maximize_w…
一般来说,所有有趣的操作与页面交互都将通过 WebElement 接口,包括上一节中介绍的对象定位,以及本节中需要介绍的常对象操作.webdriver 中比较常用的操作元素的方法有下面几个: clear 清除元素的内容,如果可以的话 send_keys 在元素上模拟按键输入 click 单击元素 submit 提交表单3.1.登录实例下面以快播私有云登录实例来展示常见元素操作的使用:#coding=utf-8from selenium import webdriverdriver = w…
对象(元素)的定位和操作是自动化测试的核心部分,其中操作又是建立在定位的基础上的,因此元素定位就显得非常重要. (本书中用到的对象与元素同为一个事物)一个对象就像是一个人,他会有各种的特征(属性) ,如比我们可以通过一个人的身份证号.姓名或者他的住址找到这个人.那么一个元素也有类似的属性,我们可以通过这种唯一区别于其它元素的属性来定位这个元素.当然,除了要操作元素时需要定位元素外,有时候我们只是为了获得元素的属性(class 属性,name 属性) .text 或数量也需要定位元素.webdri…
由于网页自动化要操作浏览器以及浏览器页面元素,这里笔者就将浏览器及页面元素常用的函数及变量整理总结一下,以供读者在编写网页自动化测试时查阅. from selenium import webdriver driver=webdriver.Firefox() driver.get(r'http://www.baidu.com/') print 'driver attributes:' print dir(driver) elem=driver.find_element_by_id('kw') pr…
有时候 web 页面上的元素并非直接可见的,就算把浏览器最大化,我们依然需要拖动滚动条才能看到想要操作的元素, 这个时候就要控制页面滚动条的拖动, 但滚动条并非页面上的元素, 可以借助 JavaScript是来完成操作.一般用到操作滚动条的会两个场景: 注册时的法律条文的阅读,判断用户是否阅读完成的标准是:滚动条是否拉到最下方. 要操作的页面元素不在视觉范围,无法进行操作,需要拖动滚动条用于标识滚动条位置的代码<body onload= "document.body.scrollTop…
当 webdriver 遇到没法完成的操作时,笔者可以考虑借用 JavaScript 来完成,比下下面的例子,通过 JavaScript 来隐藏页面上的元素.除了完成 webdriver 无法完成的操作,如果你熟悉 JavaScript的话,那么使用 webdriver 执行 JavaScript 是一件非常高效的事情.webdriver 提供了 execute_script() 接口用来调用 js 代码.js.html<html><head><meta http-equiv…
#!/usr/bin/python# -*- coding: utf-8 -*-__author__ = 'zuoanvip'#在测试过程中有时候会遇到出现多个浏览器窗口的情况,这时候我们可以通过窗口的句柄来操作不同窗口的元素from selenium import  webdriverimport  osimport  time driver =webdriver.Firefox()driver.get('http://www.baidu.com') #获得当前窗口的句柄nowwhandle…
webdriver 允许我们设置默认的文件下载路径.也就是说文件会自动下载并且存在设置的那个目录中.要想下载文件,首选要先确定你所要下载的文件的类型.要识别自动文件的下载类型可以使用 curl ,如图3.16:图 3.16curl 是利用 URL 语法在命令行方式下工作的开源文件传输工具.Content-Type ,内容类型,一般是指网页中存在的 Content-Type ,用于定义网络文件的类型和网页的编码,决定浏览器将以什么形式.什么编码读取这个文件.另一种方法是使用 requests 模块…
文件上传操作也比较常见功能之一,上传功能操作 webdriver 并没有提供对应的方法,关键上传文件的思路.上传过程一般要打开一个系统的 window 窗口,从窗口选择本地文件添加.所以,一般会卡在如何操作本地 window 窗口.其实,上传本地文件没我们想的那么复杂:只要定位上传按钮,通 send_keys 添加本地文件路径就可以了.绝对路径和相对路径都可以,关键是上传的文件存在.下面通地例子演示操作过程.upload_file.html<html><head><meta…