下面将使用WebDriver中的send_keys来模拟键盘按键输入 测试用例场景 send_keys方法可以模拟一些组合键操作: ctrl+a ctrl+c ctrl+v 等. 另外有时候我们需要在测试时使用tab键将焦点转移到下一个元素,这时候也需要send_keys.在某些更复杂的情况下,还会出现使用send_keys来模拟上下键来操作下拉列表的情况. Python脚本 测试HTML代码: <html> <head> <meta http-equiv="con…
下面将使用WebDriver来模拟操作一个层级定位元素的操作 测试用例场景 在实际的项目测试中,经常会有这样的需求:页面上有很多个属性基本相同的元素,现在需要具体定位到其中的一个.由于属性基本相当,所以在定位的时候会有些麻烦,这时候就需要用到层级定位.先定位父元素,然后再通过父元素定位子孙元素. Python脚本 下面的代码演示了如何通过层级定位来定位下拉菜单中的某一项.由于两个下拉菜单中每个选项的link text都相同,href也一样,所以在这里就需要使用层级定位了. 具体思路是:先点击显示…
下面将使用webdriver来模拟测试中观察测试对象的状态的操作 测试用例场景 在web自动化测试中,我们需要获取测试对象的四种状态 是否显示.使用element.is_displayed()方法: 是否存在.使用find_element_by_xxx方法,捕获其抛出的异常, 如果存在异常的话则可以确定该元素不存在: 是否被选中.一般是判断表单元素,比如radio或checkbox是否被选中.使用element.is_selected()方法: 是否enable,也就是是否是灰化状态.使用ele…
下面将使用webdriver来处理一些页面跳出的对话框事件 测试用例场景 页面上弹出的对话框是自动化测试经常会遇到的一个问题.前端框架的对话框经常是div形式的,下面是一些常见的对话框操作事件: 打开对话框 关闭对话框 操作对话框中的元素 Python脚本 测试用HTML代码: <html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"…
下面将使用WebDriver来模拟操作:选择一个Navigation bar的选项 测试用例场景 Navigation Bar可以看作是简单的类似于tab的导航栏.一般来说导航栏都是ul+li.先定位ul再去层级定位li中的link基本就能解决问题(一般情况下) Python脚本 测试用HTML代码: <html> <head> <meta http-equiv="content-type" content="text/html;charset=…
测试用例场景 模拟选择下拉菜单中数据的操作 Python脚本 测试用HTML代码: <html> <body> <form> <select name="cars"> <option value="volvo">Volvo</option> <option value="saab">Saab</option> <option value=&quo…
测试用例场景 当你的测试用例纠结细枝末节的时候,你就需要通过判断元素的css属性来验证你的操作是否达到了预期的效果.比如你可以通过判断页面上的标题字号以字体来验证页面的显示是否符合预期.当然,这个是强烈不推荐的.因为页面上最不稳定的就是css了,css变动频繁,次方法不常使用 Python脚本 测试用HTML代码: <html> <head> <meta http-equiv="content-type" content="text/html;c…
下面将使用WebDriver来模拟键盘的输入操作,以及复习上节的层对象操作 测试用例场景 定位到具体的对象后,我们就可以对这个对象进行具体的操作,比如先前已经看到过的点击操作(click).一般来说,webdriver中比较常用的操作对象的方法有下面几个 click 点击对象 send_keys 在对象上模拟按键输入 clear 清除对象的内容,如果可以的话 Python脚本 测试用HTML代码: <html> <head> <meta http-equiv="co…
由于本人的学习定位是基于Selenium+WebDriver+Python+FireFox+Eclipse+Pydev, 所以我的笔记也只和这方面相关. 我打算先学习基于Python脚本WebDriver的常用操作. 在学习本篇章之前,要先学习Selenium-IDE 和 Selenium-RC的一些基础知识,以及做好Python脚本的WebDriver的客户端配置. 下面开始记录我的WebDriver常用操作学习过程. 测试用例场景 使用WebDriver打开FireFox浏览器 Python…
测试用例场景 表单对象的操作比较简单,只需要记住下面几点 使用send_keys方法往多行文本框和单行文本框赋值: 使用click方法选择checkbox 使用click方法选择radio 使用click方法点击button 使用click方法选择option,从而达到选中select下拉框中某个具体菜单项的效果 Python脚本 测试用HTML代码: <html> <head> <meta http-equiv="content-type" conten…
超时设置 测试用例场景 webdriver中可以设置很多的超时时间 implicit_wait.识别对象时的超时时间.过了这个时间如果对象还没找到的话就会抛出异常 Python脚本 ff = webdriver.Firefox() ff.implicitly_wait(10) # seconds ff.get("http://somedomain/url_that_delays_loading") myDynamicElement = ff.find_element_by_id(&qu…
测试用例场景 上传文件的方法是找到上传文件的对象,通常是的对象.然后直接往这个对象send_keys,传入需要上传文件的正确路径.绝对路径和相对路径都可以,但是上传的文件必须存在,否则会报错. Python脚本 测试用HTML代码: <html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8" /> <title>uplo…
测试用例场景 处理frame需要用到2个方法,分别是switch_to_frame(name_or_id_or_frame_element)和switch_to_default_content() 如何理解这个switch_to_frame(name_or_id_or_frame_element)方法呢?可以简单记忆一下,如果这个frame有name和id属性那么就用这两个属性就好,如果没有的话可以先用find_element_by_xxx方法找到这个frame元素,然后把这个元素传进去,这也是…
测试用例场景 webdriver中处理原生的js alert confirm 以及prompt是很简单的.具体思路是使用switch_to.alert()方法定位到alert/confirm/prompt.然后使用text/accept/dismiss/send_keys按需进行操做 text:返回alert/confirm/prompt中的文字信息 accept:点击确认按钮 dismiss:点击取消按钮,如果有的话 send_keys: 向prompt中输入文字 Python脚本 测试用HT…
下面将使用WebDriver来控制浏览器的前进和后退操作 测试用例场景 此操作和get.url()方法功能相同 Python脚本 # coding=gbk ''' Created on 2013年12月7日 @author: Administrator ''' from selenium import webdriver import time import os if 'HTTP_PROXY' in os.environ: del os.environ['HTTP_PROXY'] dr = w…
下面将使用webdriver来控制浏览器窗口的大小 测试用例场景 设置浏览器窗口的大小有下面两个比较常见的用途: 在统一的浏览器大小下运行用例,可以比较容易的跟一些基于图像比对的工具进行结合,提升测试的灵活性及普遍适用性.比如可以跟sikuli结合,使用sikuli操作flash: 在不同的浏览器大小下访问测试站点,对测试页面截图并保存,然后观察或使用图像比对工具对被测页面的前端样式进行评测.比如可以将浏览器设置成移动端大小(320x480),然后访问移动站点,对其样式进行评估: Python脚…
下面将模拟执行一个控制浏览器最大化的操作 测试用例场景 当我们在测试中使用一些基于图像和坐标的辅助测试工具时,我们就会需要使浏览器在每次测试时保存最大化,以便在同一分辨率下进行图像比对和坐标点选. 举例来说,如果在webdriver测试中使用了sikuli来对flash插件进行操作的话,把浏览器最大化无疑是一个比较简单的保证分辨率统一的解决方案. Python脚本 from selenium import webdriver import time dr = webdriver.Firefox(…
下面将模拟一个WebDriver关闭浏览器的操作 测试用例场景 在一个自动化测试脚本运行完毕后,我们很可能会采取关闭浏览器的操作,而关闭浏览器的常用操作有如下两种: close quit close 方法关闭当前的浏览器窗口 quit   方法不仅关闭窗口,还会彻底的退出webdriver,释放与driver server之间的连接. Python脚本 from selenium import webdriver import time dr = webdriver.Firefox() prin…
这一部分的内容,将是在WebDriver中,定位元素方法的演示,是将Selenium中Selenese元素定位命令的WebDriver中使用方法的结合 Selenium中元素定位方法复习可以参考: <零成本实现Web自动化测试--基于Selenium> 第四章 Selenium 命令 测试用例场景 测试对象的定位和操作是webdriver的核心内容,其中操作又是建立在定位的基础之上,因此对象定位就越发显得重要了. 定位对象的目的一般有下面几种 操作对象 获得对象的属性,如获得测试对象的clas…
下面将使用WebDriver来模拟操作定位一组对象的操作 测试用例场景 从上一节的例子中可以看出,webdriver可以很方便的使用find_element方法来定位某个特定的对象,不过有时候我们却需要定位一组对象,这时候就需要使用find_elements方法. 定位一组对象一般用于以下场景: 批量操作对象,比如将页面上所有的checkbox都勾上 先获取一组对象,再在这组对象中过滤出需要具体定位的一些对象.比如定位出页面上所有的checkbox,然后选择最后一个 Python脚本 示例用HT…
下面将使用WebDriver来答应浏览器页面的title和访问的地址信息 测试用例场景 测试中,访问1个页面然后判断其title是否符合预期是很常见的1个用例: 假设1个页面的title应该是'hello world', 那么可以写这样的一个用例:访问该页面,获取该页面的title,判断获取的值是否等于'hello world'. 获取当前页面的url也是非常重要的一个操作. 在某些情况下,你访问一个url,这时系统会自动对这个url进行跳转,这就是所谓的'重定向'.一般测试重定向的方法是访问这…
测试用例场景 Wait类的使用场景是在页面上进行某些操作,然后页面上就会出现或隐藏一些元素,此时使用Wait类的until方法来等待这些效果完成以便进行后续的操作.另外页面加载时有可能会执行一些ajax,这时候也需要去WebDriverWait的until的等待ajax的请求执行完毕. 具体一点的例子前面也曾出现过,点击一个链接然后会出现一个下拉菜单,此时需要先等待下拉菜单出现方可进行点击菜单项的操作. 这时候就需要用到selenium.webdriver.support.ui.WebDrive…
下面将使用webdriver来访问一个web链接 测试用例场景 测试中,经常会点击几个链接来进行操作,所以访问链接是基本的常见操作 Python脚本 from selenium import webdriver import time dr = webdriver.Firefox() #打开火狐 url = 'http://www.baidu.com' #定义一个url为baidu.com print 'Not access %s'%(url) #打印出link time.sleep(5) #休…
测试用例场景 webdriver允许我们设置默认的文件下载路径.也就是说文件会自动下载并且存在设置的那个目录中. Python脚本 测试用Python代码: # coding=gbk ''' Created on 2013年12月19日 @author: Administrator ''' import os from selenium import webdriver fp = webdriver.FirefoxProfile() fp.set_preference("browser.down…
测试用例场景 获取测试对象的内容是前端自动化测试里一定会使用到的技术.比如我们要判断页面上是否显示了一个提示,那么我们就需要找到这个提示对象,然后获取其中的文字,再跟我们的预期进行比较.在webdriver中使用element.attribute()方法可以获取dom元素(测试对象)的属性. 获取测试对象的属性能够帮我们更好的进行对象的定位.比如页面上有很多class都是'btn'的div,而我们需要定位其中1个有具有title属性的div.由于selenium-webdriver是不支持直接使…
下面将使用webdriver来定位同一层的按钮 测试用例场景 button group就是按钮组,将一组按钮排列在一起. 处理这种对象的思路一般是先找到button group的包裹(wrapper)div,然后通过层级定位,用index或属性去定位更具体的按钮 Python脚本 测试用HTML代码: <html> <head> <meta http-equiv="content-type" content="text/html;charset=…
测试用例场景 如果你熟悉js的话,那么使用webdriver执行js就是一件很高效的事情了.在webdriver脚本中直接执行js的好处很多,这里就不一一枚举了. webdriver提供了execute_script()接口来帮助我们完成这一工作.在实际的测试脚本中,以下两种场景是经常遇到的 在页面直接执行一段js 在某个已经定位的元素的上执行js Python脚本 测试用HTML代码: <html> <head> <meta http-equiv="content…
WebDriver 常用操作 1 浏览器操作 2 窗口和弹框操作 3 cookies 操作 4 简单对象的定位 5 页面元素操作 6 鼠标事件 7 键盘事件 1 浏览器操作 #属性: driver.current_url #用于获得当前页面的URL driver.title #用于获取当前页面的标题 driver.page_source #用于获取页面html源代码 driver.port #用于获取浏览器的端口 driver.capabilities['version'] #打印浏览器vers…
原文 GIS基础软件及操作(十二) 练习十二. ArcMap制图-地图版面设计 设置地图符号-各种渲染方式的使用 使用ArcMap Layout(布局)界面制作专题地图 将各种地图元素添加到地图版面中 提示:在以下练习过程中,请时常注意保存地图文档 渲染图层要素-唯一值符号 在ArcMap中新建地图文档,加载 [空间分析] 扩展模块及[空间分析工具栏] 加载图层:[省会城市.地级市驻地.主要公路.国界线.省级行政区.Hillshade_10k],将地图文档保存到Ex12下,名称为:ChinaMa…
如果想从头学起selenium,可以去看看这个系列的文章哦! https://www.cnblogs.com/miki-peng/category/1942527.html 前言 ​ 本文主要介绍selenium控制浏览器一些常用属性和方法,包括控制窗口大小.页面前进后退.页面刷新.打开或关闭标签页.滚动条等等 设置浏览器大小 import time from selenium import webdriver # 浏览器实例化 driver = webdriver.Chrome() # 把浏览…