安装说明
Selenium IDE 安装
下域IDE http://docs.seleniumhq.org/download/previous.jsp
然后打开firefox ,加载本组件
基于FireFox的测试插件中,Selenium IDE是其中的佼佼者。
Selenium IDE是一个基于FireFox的Web测试开发环境,可以录制、编辑和调试测试。Selenium IDE包含了Selenium Core,因此可以轻易地在浏览器中录制和回放测试。
Selenium IDE不仅仅是一个测试录制工具,而是一个IDE,可以录制测试,也可以手工编辑测试,可设置断点进行调试,可把测试保存到HTML、Ruby、C#、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
下载地址: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工程属性加载Selenium的jar包,要求最新的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;
}
}
}