码迷,mamicode.com
首页 > Web开发 > 详细

selenium webdriver学习篇①

时间:2016-06-08 12:21:33      阅读:343      评论:0      收藏:0      [点我收藏+]

标签:

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

 

selenium webdriver学习篇①

标签:

原文地址:http://www.cnblogs.com/itliucheng/p/5566950.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!