友善交流技术...

selenium web自动化初探试

上一篇 / 下一篇  2013-09-25 15:02:56 / 个人分类:自动化测试

Selenium经验总结

安装说明

Selenium IDE 安装

下域IDE http://docs.seleniumhq.org/download/previous.jsp 

然后打开firefox ,加载本组件

基于FireFox测试插件中,Selenium IDE是其中的佼佼者。

  Selenium IDE是一个基于FireFoxWeb测试开发环境,可以录制、编辑和调试测试。Selenium IDE包含了Selenium Core,因此可以轻易地在浏览器中录制和回放测试。

  Selenium IDE不仅仅是一个测试录制工具,而是一个IDE,可以录制测试,也可以手工编辑测试,可设置断点进行调试,可把测试保存到HTMLRubyC#Java等其他脚本格式,然后使用Selenium RC来实现并运行更加灵活和强大的测试。

  Selenium IDE下载地址:http://selenium-ide.openqa.org/download.jsp

  下载后,在FireFox中打开插件文件selenium-ide-0.8.7.xpi进行安装,重新启动FireFox后,可选择菜单“Tools | Selenium IDE”打开Selenium IDE的界面。

  录制测试脚本的过程可以用“傻瓜式”来形容,手工编辑脚本是通过选择和插入Selenium命令(Command)的方式来实现的,结合其在线命令帮助(Reference)还是比较容易上手的。可直接在FireFox中运行测试脚本,也可调出TestRunner界面来执行测试脚本。

  Selenium IDE目前仅支持FireFox浏览器,IE中类似的Web测试录制工具目前找到一个“WatiN Test Recorder”,支持在IE中录制WatiN的测试脚本。

 

Server安装

下载server

下载地址:http://docs.seleniumhq.org/download/

启动server

D:\ selenium\selenium-2.19.0>java -jar selenium-server-standalone-2.19.0.jar


录制脚本

打开firefox浏览器如下

启动IDE 通过firefox来录制相关的脚本 

 

解决java实现的问题

浏览器打开失败

解决办法

1)打开java工程属性加载Seleniumjar包,要求最新的jar包应该就可以解决本问题

2)建议使用webDriver方式来执行脚本

 

发送tom邮件举例

package com.example.tests;

import java.util.regex.Pattern;

import java.util.concurrent.TimeUnit;

import org.junit.*;

import static org.junit.Assert.*;

import static org.hamcrest.CoreMatchers.*;

import org.openqa.selenium.*;

import org.openqa.selenium.firefox.FirefoxDriver;

import org.openqa.selenium.support.ui.Select;


public class Tom {

  private WebDriver driver;

  private String baseUrl;

  private boolean acceptNextAlert = true;

  private StringBuffer verificationErrors = new StringBuffer();


  @Before

  public void setUp() throws Exception {

    driver = new FirefoxDriver();

    baseUrl = "http://web.mail.tom.com/";

    driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);

  }


  @Test

  public void testTom() throws Exception {

    driver.get(baseUrl + "/webmail/login/index.action");

    Thread.sleep(2000);

    //tom mail login

    driver.findElement(By.id("username")).clear();

    driver.findElement(By.id("username")).sendKeys("username");

    Thread.sleep(2000);

    driver.findElement(By.id("password3_$loginhash")).clear();

    driver.findElement(By.id("password")).sendKeys(" password");    

    Thread.sleep(2000);

    driver.findElement(By.cssSelector("#login > img")).click();

    Thread.sleep(2000);

    driver.findElement(By.xpath("//ul[@id='ulTabs']/li[3]/span")).click();

    driver.findElement(By.id("pop_close")).click();

    //send mail to xxxxx@tom.com

    driver.findElement(By.id("webmail_sys_write")).click();

    driver.findElement(By.id("tob")).click();

    driver.findElement(By.id("tob")).clear();

    driver.findElement(By.id("tob")).sendKeys("xxxx@tom.com");

    driver.findElement(By.id("subject")).clear();

    driver.findElement(By.id("subject")).sendKeys("zhuti");    

    //send mail content 

    WebElement cont = driver.switchTo().frame(driver.findElement(By.id("xhEdt0_iframe"))).findElement(By.className("editMode"));

    cont.sendKeys("邮件的内容!!!");       

    driver.switchTo().defaultContent();

    

    driver.findElement(By.cssSelector("span[name=\"sendMail\"]")).click();

    driver.findElement(By.id("logout")).click();

    driver.findElement(By.xpath("//button[@type='button']")).click();

    driver.findElement(By.xpath("//button[@type='button']")).click();

  }


  @After

  public void tearDown() throws Exception {

    driver.quit();

    String verificationErrorString = verificationErrors.toString();

    if (!"".equals(verificationErrorString)) {

      fail(verificationErrorString);

    }

  }


  private boolean isElementPresent(By by) {

    try {

      driver.findElement(by);

      return true;

    } catch (NoSuchElementException e) {

      return false;

    }

  }


  private boolean isAlertPresent() {

    try {

      driver.switchTo().alert();

      return true;

    } catch (NoAlertPresentException e) {

      return false;

    }

  }


  private String closeAlertAndGetItsText() {

    try {

      Alert alert = driver.switchTo().alert();

      String alertText = alert.getText();

      if (acceptNextAlert) {

        alert.accept();

      } else {

        alert.dismiss();

      }

      return alertText;

    } finally {

      acceptNextAlert = true;

    }

  }

}



TAG:

 

评分:0

我来说两句

Open Toolbar