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.7 总结
这只是一个非常简单的开始,实现了自动登录的功能,我们还可以实现自动填写表单 、等模拟手工测试,对于那些需要长期测试与维护二页面风格不会发生太大变化的页面,自动化测试真的很棒!
接下来我会把项目过程中出现的问题以及积累贴到博客中,希望各位大侠能够多多帮助,嘿嘿