selenium2.0&WebDriver环境搭配实现网站自动登录


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框架

  selenium2.0&WebDriver环境搭配实现网站自动登录_第1张图片

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.通用方法

     一般对于网页的操作,会出现由于网页加载速度慢于系统处理速度,会出现由于加载速度慢无法找到元素而报错的现象,所以自己写一个延时的小程序

selenium2.0&WebDriver环境搭配实现网站自动登录_第2张图片
3.6 对 baiduClass.java文件 右键 new一个JUNIT测试脚本 勾选的两个方法 分别是 “进入网页时”与“退出网页时” 会发生的操作,

     相当于初始化 以及 退出 操作 代码如下

selenium2.0&WebDriver环境搭配实现网站自动登录_第3张图片

<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 总结

   这只是一个非常简单的开始,实现了自动登录的功能,我们还可以实现自动填写表单 、等模拟手工测试,对于那些需要长期测试与维护二页面风格不会发生太大变化的页面,自动化测试真的很棒!

   接下来我会把项目过程中出现的问题以及积累贴到博客中,希望各位大侠能够多多帮助,嘿嘿



你可能感兴趣的:(JUnit,selenium,自动化测试)