selenium webdriver学习篇①

Selenium是一个很不错的Web测试工具,使用灵活,简单,随着网站内容的增多,原始的人工测试越发的繁杂,而且经常有遗忘的地方,

自动化测试也就显得重要起来,这里记录一下selenium webdriver的学习过程

注:我是做java的,我只学习 java 与  Selenium WebDriver 配合的方法。

第一篇 Selenium IDE

对于新手而言,最开始可能会用Selenium IDE录制程序,但是熟悉之后,我更倾向于写代码做标准的功能测试,那还是首先讲一下Selenium IDE,再开始

我们的第一个helloWord.

Selenium IDE是Firefox的一个插件,是可以进行脚本录制以及案例转换

1.首先下载firefox 然后安装附加组建 Selenium IDE,Firebug

然后搜索Selenium IDE,Firebug这两个组建安装即可

2.启动Selenium IDE

1是录制开关,2是播放

这里可以导出成java的语言

当弹出上面的IDE窗口后,我们就可以开始Selenium的脚本录制了,右上角有个红色的圆点,当它下按时(如上图)就表示IDE正在进行脚本录制。OK,开始录制,录制的时候,直接操作Firefox浏览器窗口就可以了,IDE会自动记录你的操作的

第二篇.建立项目

用 Eclipse 建个 Maven 的工程,建成后,修改 pom.xml

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.2</version>
      <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
         <artifactId>selenium-java</artifactId>
         <version>2.53.0</version>
    </dependency>
    <dependency>
        <groupId>com.opera</groupId>
        <artifactId>operadriver</artifactId>
    </dependency>
    <dependency>
         <groupId>org.apache.commons</groupId>
         <artifactId>commons-exec</artifactId>
         <version>1.3</version>
    </dependency>
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.17</version>
    </dependency>
  </dependencies>
  <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.opera</groupId>
                <artifactId>operadriver</artifactId>
                <version>0.16</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.seleniumhq.selenium</groupId>
                        <artifactId>selenium-remote-driver</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
        </dependencies>
    </dependencyManagement>

第三篇 启动浏览器

ie

        WebDriver driver = new InternetExplorerDriver();  

        // 让浏览器访问 Baidu
        driver.get("http://www.baidu.com");  

firefox

// 如果你的 FireFox 没有安装在默认目录,那么必须在程序中设置
System.setProperty("webdriver.firefox.bin", "D:\\software\\firefox\\firefox.exe");
// 创建一个 FireFox 的浏览器实例
driver = new FirefoxDriver();
driver.get("http://www.baidu.com"); 

chrome

System.setProperty("webdriver.chrome.driver","C:/Program Files (x86)/Google/Chrome/Application/chromedriver.exe");
// 创建一个 ChromeDriver 的接口,用于连接 Chrome,
//必须要有chromedriver.exe文件,selenium默认不能启动chrome
// 创建一个 Chrome 的浏览器实例
driver = new ChromeDriver();

第四篇:code

①selenium ide录制

②程序抓取

js

JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("document.getElementById(\"myProjectId\").style=\"display: block;\"");

driver.findElement(by.)

  id

driver.findElement(By.id("kw"));

  className

driver.findElement(By.className("comment")

  cssSeletor

driver.findElement(By.cssSelector("img.plusImg"))

  linktext

driver.findElements(By.linkText("客户登录"))

  xPath

xpath

XPATH是一门在XML文档中查找信息的语言,XPATH可用来在XML文档中对元素和属性进行遍历,提供了浏览树的能力

主流的浏览器都支持XPATH

/html/body/div/form/input

//ul[@id=‘ul-select‘]/li[1]

//button[contains(text(),‘提交‘)]

//ul[@id=‘myProjectId‘]//a[contains(text(),‘提交‘)]

select操作

new Select(driver.findElement(By.id("company-city"))).selectByVisibleText("深圳");

第五篇:特殊操作

frame

有时候我们在定位一个页面元素的时候发现一直定位不了,反复检查自己写的定位器没有任何问题,代码也没 有任何问题。这时你就要看一下这个页面元素是否在一个iframe中,这可能就是找不到的原因之一。如果你在 一个default content中查找一个在iframe中的元素,那肯定是找不到的。反之你在一个iframe中查找另一个 iframe元素或default content中的元素,那必然也定位不到

//进入id="frame"或者name="frame"的frame中,
driver.switchTo().frame("frame"); 

父子窗口

String newHandle = "";
//获取当前窗口  父窗口
String currentHandle = driver.getWindowHandle();
//点击页面元素打开新窗口
DriverUtil.scrollIntoView(driver, DriverUtil.getWebElement(driver, By.className("indentinfo-table-div")));
//获取浏览器所有窗口
Set<String> handles = driver.getWindowHandles();
Iterator<String> itWin = handles.iterator();
while(itWin.hasNext()){
    String key = itWin.next();
    if(currentHandle.equals(key)){
        continue;
    }
    //得到新窗口
    newHandle = key;
}
//切换窗口
WebDriver newDriver = driver.switchTo().window(newHandle);
//业务操作
//...
//...
//set中移除新窗口
handles.remove(newHandle);
//切回主窗口
driver.switchTo().window(currentHandle);

模态框

driver.switchTo().activeElement();

对于ajax

webDriverwait

sleep

时间: 2024-10-11 07:01:34

selenium webdriver学习篇①的相关文章

Selenium webdriver 学习总结-元素定位

Selenium webdriver 学习总结-元素定位 webdriver提供了丰富的API,有多种定位策略:id,name,css选择器,xpath等,其中css选择器定位元素效率相比xpath要高些,使用id,name属性定位元素是最可靠,效率最高的一种办法. 1.工具选择:在我们开发测试脚本的过程中各个浏览器给我们也提供了方便定位元素的工具,我比较喜欢使用firefox的firebug工具,也是目前很多开发测试人员比较热衷的选择,原因是firefox是唯一能够集成selenium IDE

Selenium Webdriver 学习总结-Jenkins配置(八)

这周单位要做一个人脸美化的项目,查资料遇到这位大牛的博客,地址如下:点击打开链接 我的代码也是在他的基础上进行修改的,但是他对图像的RGB三个通道平等调节,为了适应我的需求,我改成了针对三个通道分别调节.废话不多说,开始上源码 void ImageAdjust(Mat& src, Mat& dst, vector<double> low_in, vector<double> high_in, vector<double> low_out, vector&

selenium webdriver 学习总结-数据驱动(六)

QQ群:136924235 论坛:http://bbs.shareku.com webdriver可以结合junit中的Parameterized运行器完成数据驱动的目的,数据驱动的方式很多,可以结合csv文件,excel文件,jdbc等,下面我将结合csv,jdbc来展示如何完成数据驱动测试. 一.先给大家介绍一下如何使用Parameterized运行器,两种方式实现. 1.第一种方式,通过构造方法初始化测试数据 代码示例: package junit.parameters; import o

selenium webdriver学习(七)------------如何处理alert、confirm、prompt对话框( 转)

selenium webdriver学习(七)------------如何处理alert.confirm.prompt对话框 博客分类: Selenium-webdriver alertpromptconfirmseleniumwebdriver alert.confirm.prompt这样的js对话框在selenium1.X时代也是难啃的骨头,常常要用autoit来帮助处理. 试用了一下selenium webdriver中处理这些对话框十分方便简洁.以下面html代码为例: Html代码  

selenium webdriver学习(九)------------如何操作cookies(转)

selenium webdriver学习(九)------------如何操作cookies 博客分类: Selenium-webdriver Web 测试中我们经常会接触到Cookies,一个Cookies主要属性有”所在域.name.value.有效日期和路径",下面来讲一下怎么操作Cookies. Java代码   import java.util.Set; import org.openqa.selenium.Cookie; import org.openqa.selenium.WebD

selenium webdriver学习(五)------------iframe的处理(转)

selenium webdriver学习(五)------------iframe的处理 博客分类: Selenium-webdriver 如何定位frame中元素 有时候我们在定位一个页面元素的时候发现一直定位不了,反复检查自己写的定位器没有任何问题,代码也没有任何问题.这时你就要看一下这个页面元素是否在一个iframe中,这可能就是找不到的原因之一.如果你在一个default content中查找一个在iframe中的元素,那肯定是找不到的.反之你在一个iframe中查找另一个iframe元

selenium webdriver学习(一)------------快速开始(转载JARVI)

selenium webdriver学习(一)------------快速开始 博客分类: Selenium-webdriver selenium webdriver 学习 selenium webdriver学习历程(一)------------快速开始 学习selenium已经两年了,从1.X到2.X,一直在关注它.中间由于工作原因中断了一段时间,但是一直无法割舍,最近又去官网看了一下,更新还挺快的.selenium1.X的时代将被取代,selenium-webdriver的大航海时代开始了

selenium webdriver学习(八)------------如何操作select下拉框(转)

selenium webdriver学习(八)------------如何操作select下拉框 博客分类: Selenium-webdriver 下面我们来看一下selenium webdriver是如何来处理select下拉框的,以http://passport.51.com/reg2.5p这个页面为例.这个页面中有4个下拉框,下面演示4种选中下拉框选项的方法.select处理比较简单,直接看代码吧:) Java代码   import org.openqa.selenium.By; impo

selenium webdriver学习(十)------------如何把一个元素拖放到另一个元素里面(转)

selenium webdriver学习(十)------------如何把一个元素拖放到另一个元素里面 博客分类: Selenium-webdriver 元素拖放drag and drop Q群里有时候会有人问,selenium  webdriver怎么实现把一个元素拖放到另一个元素里面.这一节总一下元素的拖放. 下面这个页面是一个演示拖放元素的页面,你可以把左右页面中的条目拖放到右边的div框中. http://koyoz.com/demo/html/drag-drop/drag-drop.