1.背景知识:
网上说的都特别丰满,我就不重复说明了
2.前期准备
工作环境: MyEclipse 8.5
额外下载如下 驱动及资源包 chromedriver.exe selenium-java-2.35.0.jar selenium-server-standalone-2.35.0.jar
3.开始配置
3.1新建 java工程
3.2 配置junit 4.0框架
3.3将我们需要的资源包以及 驱动导入系统,最后的工作目录如下
3.4 我们想实现的目标是,启动项目之后自动登录百度-知道 ,所以在工程里新建 com.baidu.first 包 然后新建 baiduClass.java文件,代码如下
</pre><pre name="code" class="html">package com.baidu.first;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
public class baiduClass {
/*
* 静态类,用于存放本页面需要定位的元素 ,我们采用的时XPATH 方式,具体的方法是
* Chrome 或fireBug下, 审查并找到元素之后 右键 “复制XPATH路径”
* 这样做,避免出现 代码 与元素位置 交替出现令你焦头烂额,因为很可能后面会出现吧数十个元素
*/
private static class Contest{
//这里的元素师百度首页 百度知道 元素的位置
public static final String zhidao="//*[@id=\"nv\"]/a[3]";
}
private String url;
private WebDriver webdriver;
/*
* 通过 响应页面的URL webdriver驱动作为参数构造构造器
* 此时的webdriver属性 代表目标页面
*/
public baiduClass(String url, WebDriver webdriver) {
super();
this.url = url;
this.webdriver = webdriver;
this.webdriver.get(this.url);
}
/*
* 自定义方法
* findElement().click()函数模拟“点击”操作
* 目标通过By.xpath(XXXX)获得
*/
public void zhidaoC(){
this.webdriver.findElement(By.xpath(Contest.zhidao)).click();
}
}
3.5 新建一个工具类 用于存放 1.初始登陆页面(也就是我们最开始需要登录的百度首页)以及2. 驱动所在的路径属性3.通用方法
一般对于网页的操作,会出现由于网页加载速度慢于系统处理速度,会出现由于加载速度慢无法找到元素而报错的现象,所以自己写一个延时的小程序
3.6 对 baiduClass.java文件 右键 new一个JUNIT测试脚本 勾选的两个方法 分别是 “进入网页时”与“退出网页时” 会发生的操作,
相当于初始化 以及 退出 操作 代码如下
<pre name="code" class="java">package com.baidu.first;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import com.mprc.util.ComUtil;
public class baiduClassTest {
private WebDriver driver;
private baiduClass baidu;
@Before
public void setUp() throws Exception {
//固定格式,webdriver操作
System.setProperty("webdriver.chrome.driver",
ComUtil.contant.DRIVER_ABPATH);
//这里可以换成firefoxDriver()驱动
this.driver = new ChromeDriver();
driver.manage().window().maximize();
//此时的 baidu属性相当于目标页面,所有的操作都在此元素上操作
this.baidu = new baiduClass(ComUtil.contant.URL,driver);
}
//@After会在@Before以及@Test之后执行退出操作
@After
public void tearDown() throws Exception {
this.driver.quit();
}
//我们可以写无数个@Test 操作,分别模拟测试用例中对应的模块
@Test
public void Click1() throws Exception{
baidu.zhidaoC();
System.out.println("success");
}
}
3.6 大功告成了,选择 项目---右键----RUS AS -----JUNIT Test
自动打开了百度知道页面
3.7 总结
这只是一个非常简单的开始,实现了自动登录的功能,我们还可以实现自动填写表单 、等模拟手工测试,对于那些需要长期测试与维护二页面风格不会发生太大变化的页面,自动化测试真的很棒!
接下来我会把项目过程中出现的问题以及积累贴到博客中,希望各位大侠能够多多帮助,嘿嘿