Selenium
Selenium 是目前用的最广泛的Web UI 自动化测试框架,目前支持linux,window,mac多平台运行;
Selenium支持的浏览器
- IE6-10
- FireFox大部分版本(selenium 2.52目前不支持firefox47.0以上的版本,最新的3.4版本未测试)
- Chrome
- Safari
- Opera
- Andrioid 系统上的自带浏览器
- IOS系统上自带浏览器
- HtmlUnit的无界面实现
Jar包下载地址
- 官网下载地址: http://www.seleniumhq.org/download/
- 添加下载文件目录中的 libs文件夹、selenium-java.jar 到项目结构就可以(不同IDE导入JAR方式不一样);
- 也可以通过Maven的方式添加项目依赖,按照如下的官方文档:http://docs.seleniumhq.org/download/maven.jsp;
自动化测试基本流程
1. 找到Web的页面元素,并赋予到一个存储对象中 (WebElement);
2. 对存储页面元素的对象进行操作,如点击按钮,在输入框键入字符等;
3. 验证操作结果;
4、记录操作结果;
示例程序
/*模拟A站用户登录投票*/
public class AutoVote {
private WebDriver driver; //浏览器引擎对象
private WebDriver.Navigation navigation; //引导对象
private String baseUrl = "http://m.acfun.cn/sp/cj2017/1099?type=cos"; //目标url
private String browerPath = "./Firefox39.0/Firefox.exe"; //浏览器路径
public AutoVote(){
//设置firefox浏览器的位置
System.setProperty("webdriver.firefox.bin", browerPath);
//创建WebDriver对象
driver = new FirefoxDriver();
navigation = driver.navigate();
//加载到指定url
navigation.to(baseUrl);
//执行登录操作
driver.findElement(By.id("btn-guide-header")).click();
driver.findElement(By.id("btn-login-header")).click();
WebElement username_element = driver.findElement(By.id("ipt-username-login"));
username_element.clear();
username_element.sendKeys("12345678");
WebElement password_element = driver.findElement(By.id("ipt-password-login"));
password_element.clear();
password_element.sendKeys("1234");
driver.findElement(By.id("btn-submit-login")).click();
//执行投票操作
driver.findElement(By.xpath(".//*[@id='content-detail']/div[6]/div")).click();
//执行退出登录
driver.findElement(By.id("btn-guide-header")).click();
driver.findElement(By.id("btn-logout")).click();
//关闭浏览器
driver.close();
}
public static void main(String[] args){
- new AutoVote();
}
}