参考:http://www.testclass.net/selenium_java/ 一共分为二十个部分:环境安装之Java.环境安装之IntelliJ IDEA.环境安装之selenium.selenium3浏览器驱动.selenium元素定位.控制浏览器操作.WebDriver常用方法.模拟鼠标操作.模拟键盘操作.获取断言信息.设置元素等待.定位一组元素.多表单切换.多窗口切换.下拉框选择.警告框处理.文件上传.浏览器cookie操作.调用JavaScript代码.获取窗口截屏: (一)环境…
有时我们会碰到下拉框,WebDriver提供了Select类来处理下接框. 如百度搜索设置的下拉框,如下图: 搜索下拉框实现代码如下: <select id="nr" name="NR"> <option value="10" selected>每页显示 10 条</option> <option value="20">每页显示 20 条</option> <o…
前面我们已经学习了定位元素, 定位只是第一步, 定位之后需要对这个元素进行操作, 或单击(按钮) 或 输入(输入框) , 下面就来认识这些最常用的方法. 1.WebDriver 常用方法 下面先来认识 WebDriver 中最常用的几个方法: clear() 清除文本. sendKeys(*value) 模拟按键输入. click() 单击元素 import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import…
通过前面例子了解到,可以使用click()来模拟鼠标的单击操作,现在的Web产品中提供了更丰富的鼠标交互方式, 例如鼠标右击.双击.悬停.甚至是鼠标拖动等功能.在WebDriver中,将这些关于鼠标操作的方法封装在ActionChains类提供. Actions 类提供了鼠标操作的常用方法: contextClick() 右击 clickAndHold() 鼠标点击并控制 doubleClick() 双击 dragAndDrop() 拖动 release() 释放鼠标 perform() 执行所…
1.selenium定位方法 Selenium提供了8种定位方式. id name class name tag name link text partial link text xpath css selector 这8种定位方式在Java selenium中所对应的方法为: findElement(By.id()) findElement(By.name()) findElement(By.className()) findElement(By.tagName()) findElement(…
自动化用例是由程序去执行,因此有时候打印的错误信息并不十分明确.如果在脚本执行出错的时候能对当前窗口截图保存,那么通过图片就可以非常直观地看出出错的原因. WebDriver提供了截图函数getScreenshotAs()来截取当前窗口. import java.io.File; import java.io.IOException; import org.apache.commons.io.FileUtils; import org.openqa.selenium.OutputType; im…
虽然WebDriver提供了操作浏览器的前进和后退方法,但对于浏览器滚动条并没有提供相应的操作方法.在这种情况下,就可以借助JavaScript来控制浏览器的滚动条.WebDriver提供了executeScript()方法来执行JavaScript代码. 用于调整浏览器滚动条位置的JavaScript代码如下: <!-- window.scrollTo(左边距,上边距); --> window.scrollTo(0,450); window.scrollTo()方法用于设置浏览器窗口滚动条的…
有时候我们需要验证浏览器中Cookie是否正确, 因为基于真实Cookie的测试是无法通过白盒测试和集成测试进行的.WebDriver提供了操作Cookie的相关方法可以读取. 添加和删除Cookie信息. WebDriver 操作Cookie的方法: getCookies() 获得所有 cookie 信息. getCookieNamed(String name) 返回字典的key为"name"的Cookie信息. addCookie(cookie dict) 添加Cookie.&qu…
对于通过input标签实现的上传功能,可以将其看作是一个输入框,即通过sendKeys()指定本地文件路径的方式实现文件上传. 创建upfile.html文件,代码如下: <html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8" /> <title>upload_file</title> <link…
在页面操作过程中有时候点击某个链接会弹出新的窗口, 这时就需要主机切换到新打开的窗口上进行操作.WebDriver提供了switchTo().window()方法可以实现在不同的窗口之间切换. 以百度首页和百度注册页为例,在两个窗口之间的切换如下图. 实现窗口切换的代码如下: import java.util.Set; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.se…
在第(五)节我们已经学习了8种定位方法, 那8种定位方法是针对单个元素定位的, WebDriver还提供了另外8种用于定位一组元素的方法. import org.openqa.selenium.By; ...... findElements(By.id()) findElements(By.name()) findElements(By.className()) findElements(By.tagName()) findElements(By.linkText()) findElements…
WebDriver提供了两种类型的等待:显式等待和隐式等待. 1.显示等待 WebDriver提供了显式等待方法,专门针对某个元素进行等待判断. import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.sel…
Keys()类提供了键盘上几乎所有按键的方法. 前面了解到, sendKeys()方法可以用来模拟键盘输入, 除此之 外, 我们还可以用它来输入键盘上的按键, 甚至是组合键, 如 Ctrl+A. Ctrl+C 等. import org.openqa.selenium.WebElement; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa…
1.通过jar包安装 点击Selenium下载 链接 你会看到Selenium Standalone Server的介绍: The Selenium Server is needed in order to run Remote Selenium WebDriver. Selenium 3.X is no longer capable of running Selenium RC directly, rather it does it through emulation and the WebD…
(一)环境安装之Java 1.安装java 点击 JDK8下载,根据自己的平台,选择相应的版本进行下载. 小知识: Java环境分JDK和JRE ,JDK就是Java Development Kit.简单的说JDK是面向开发人员使用的SDK,它提供了Java的开发 环境和运行环境.JRE是Java Runtime Enviroment是指Java的运行环境,是面向 Java 程序的使用者. 我们以 Windows安装JDK为例,双击下载的JDK,设置安装路径.这里我选择默认安装在"D:\Prog…
在 WebDriver中处理JavaScript所生成的alert.confirm以及prompt十分简单,具体做法是使用switch_to_alert()方法定位到alert/confirm/prompt,然后使用text/accept/dismiss/sendKeys等方法进行操作. getText(): 返回 alert/confirm/prompt 中的文字信息. accept(): 接受现有警告框. dismiss(): 解散现有警告框. sendKeys(keysToSend): 发…
在 Web 应用中经常会遇到 frame/iframe 表单嵌套页面的应用, WebDriver 只能在一个页面上对元素识别与 定位, 对于 frame/iframe 表单内嵌页面上的元素无法直接定位. 这时就需要通过 switchTo().frame()方法将当前定 位的主体切换为 frame/iframe 表单的内嵌页面中. <html> <body> ... <iframe id="x-URS-iframe" ...> <html>…
不管是在做功能测试还是自动化测试,最后一步需要拿实际结果与预期进行比较.这个比较的称之为断言. 我们通常可以通过获取title .URL和text等信息进行断言.text方法在前面已经讲过,它用于获取标签对之间的文本信息. getTitle(): 用于获得当前页面的title. getCurrentUrl() : 用户获得当前页面的URL. getText() 获取页面文本信息. 下面同样以百度为例,介绍如何获取这些信息. import org.openqa.selenium.By; impor…
(六)控制浏览器操作 1.控制浏览器窗口大小 有时候我们希望能以某种浏览器尺寸找开,访问的页面在这种尺寸下运行.例如可以将浏览器设置成移动端大小(480* 800),然后访问移动站点,对其样式进行评估:WebDriver 提供了 manage().window().setSize()方法来设置浏览器的大小. maximize() 设置浏览器最大化 setSize() 设置浏览器宽高 import org.openqa.selenium.Dimension; import org.openqa.s…
1.下载浏览器驱动 当selenium升级到3.0之后,对不同的浏览器驱动进行了规范.如果想使用selenium驱动不同的浏览器,必须单独下载并设置不同的浏览器驱动. 各浏览器下载地址: Firefox浏览器驱动:geckodriver Chrome浏览器驱动:chromedrivertaobao备用地址 IE浏览器驱动:IEDriverServer Edge浏览器驱动:MicrosoftWebDriver Opera浏览器驱动:operadriver PhantomJS浏览器驱动:phanto…
1.安装IntelliJ IDEA 你可能会问,为什么不用Eclipse呢?随着发展IntelliJ IDEA有超越Eclipse的势头,JetBrains公司的IDE基本上已经一统了各家主流编程语言的江湖.考虑到 Java IDE的流行趋势,本书中决定选用IntelliJ IDEA. 当然, 选择什么样的IDE充满着个人喜好.你依然可以参考其它资料安装Java IDE.这不会影响你阅读该系列文章. 点击IntelliJ IDEA下载,根据自己的平台,选择相应的版本进行下载. IntelliJ…
警告框处理 在WebDriver中处理JavaScript所生成的alert.confirm以及prompt十分简单,具体做法是使用 switch_to.alert 方法定位到 alert/confirm/prompt,然后使用text/accept/dismiss/ send_keys等方法进行操作. text:返回 alert/confirm/prompt 中的文字信息. accept():接受现有警告框. dismiss():解散现有警告框. send_keys(keysToSend):发…
Python+selenium之获取文本值和下拉框选择数据 一.结合实例进行描述 1. 实例如下所示: #新增标签操作 def func_labels(self): self.driver.find_element_by_xpath("//*[@class='menu-text'][text()='业务管理']").click() time.sleep(1) self.driver.find_element_by_xpath("//*[@class='menu-text'][…
selenium webdriver学习(八)------------如何操作select下拉框 博客分类: Selenium-webdriver   下面我们来看一下selenium webdriver是如何来处理select下拉框的,以http://passport.51.com/reg2.5p这个页面为例.这个页面中有4个下拉框,下面演示4种选中下拉框选项的方法.select处理比较简单,直接看代码吧:) import org.openqa.selenium.By; import org.…
下拉框结构如下,我需要选择的是new: html为: <select id="condition_type" name="condition_type" class="notification-required notification-required-unknown"> <option value=""> - Select -</option> <option value=&quo…
在实际开发中,由于业务需要,常常需要进行Excel导入导出操作.以前做一些简单的导入时,先准备一个模板,再进行导入,单有十几. 二十几个导入模板时,往往要做十几.二十几个模板.而且,当在模板中需要有下拉框,而且下拉数据要实时查询时,这样的方法就不太好了: 现在,做成了动态生成导入模板,只要参数传对了,就可以生成任何我们想要的导入模板,而且随意设置下拉框的数目.位置. 具体步骤如下: 1.需要用到的jar包: poi-3.10-FINAL.jar poi-ooxml-3.10-FINAL.jar…
对于一个自动化的初学者来说会很常见的遇到元素明明存在却始终定位不到, 从而导致脚本报错,当然定位不到元素的原因很多, 其中一种就是多层框架iframe导致的 下方截图示意: 下方为写脚本时候的示例并其中还包含了下拉框定位问题 惜阳在开始写此模块自动化的时候,想要定位“审核状态“的下拉框但没有注意到iframe问题,导致报错报的自己都怀疑人生 后来才发现还有iframe,于是正确代码如下: #首先进入要操作的iframe模块 iframe=driver.find_element_by_xpath(…
今天讲什么 讲什么标题说了,讲selenium的单选.多选.下拉框选项定位.但其实这东西,没什么太多说的,又比较枯燥,那该怎么让这一集selenium的课程变得有趣呢?有请老中医,哈哈- 怎么样,这个野广告做的还不错吧,你们给多少分?至于为什么要自己写一个html的页面,一是懒得找什么网页又有下来框体,又有单/多选.二是最近更多的想练习写一些web界面,最重要的是怕大家觉得selenium系列的文章没意思,所以搞点噱头呗.哈哈- 页面实现起来比较简单,样式用Bootstrap即可,至于这个城中村…
一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 这是python+selenium实现Web自动化第三篇博文 二.Selenium第一篇和第二篇博文地址: [Selenium01篇]python+selenium实现Web自动化:搭建环境,Selenium原理,定位元素以及浏览器常规操作! [Selenium02篇]python+selenium实现Web自动化:鼠标操作和键盘操作! 三.Seleniu…
10.查看浏览器打开了多少个table和当前页面在哪个table 测试:打开了浏览器后,打开了一个新的标签页之后,显示此时有2个table,浏览器中当前页面展示的是第2个页面,但是代码打印显示的仍然是第一个页面,因为浏览器认为打开的是同一个页面 11.页面切换switch_to.window,在10基础上进行,切换到新页面: 如果切换到了新页面之后,又要切换回来,操作如下:关闭当前页面--切换到第一个页面(这个一定要加,不加会报错说第一个页面也被关了)--给第一个页面写写东西,看看是否切换回来了…