当前位置: 代码迷 >> Web前端 >> Selenium2.0功能测试之怎么使用Remote WebDriver(Java版)
  详细解决方案

Selenium2.0功能测试之怎么使用Remote WebDriver(Java版)

热度:1111   发布时间:2013-10-25 14:36:53.0
Selenium2.0功能测试之如何使用Remote WebDriver(Java版)

可能目前使用WebDriver的绝大多数人还没有接触到Remote WebDriver,所以对Remote WebDriver没有一个概念,其实可以把Remote WebDriver理解成为在远程PC上执行WebDriver用例。

那么远程的好处在哪里呢?除了可以更方便的进行跨平台、浏览器的测试外,最重要的一点是排除我们本地环境的污染,因为我们工作用的PC其实我们安装了很多的软件,那么在coding的时候这些软件对环境的污染就难免不对我们的代码产生影响,最后就很容易造成代码在我这运行良好,但是到了别人那就跑不起来了或者结果有差异,这时我们就需要一个干净的PC环境作为一个验证机,在自己的PC上编写完代码后在验证机上进行Remote执行验证(当然有犟嘴的说我可以把代码拷过去执行啊,不需要Remote WebDriver啊,对于这样的人我们就不强求他了。。。)。下面直接搭建Remote环境:

  1. 需要另外一个PC, 在这个PC上安装JDK以及需要执行的浏览器的driver(安装方法看我前面的如何搭建Selenium环境那章)
  2. 将这个 selenium-server-standalone-2.35.0.jar (这里的2.35.0不是固定的可以是其他版本)拷贝到任意一个目录下,用控制台进入这个目录执行: java -jar selenium-server-standalone-2.35.0.jar  如果看到如下图就证明Remote PC 的Server 配置成功了

  3. 下面直接编写Remote WebDriver代码了(这里用到了JUnit4估计都会我就不细说了,以后可能会写点TestNG快速入门的文章)
    package org.coderinfo.demo;
    
    import java.net.URL;
    import java.util.concurrent.TimeUnit;
    
    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.remote.DesiredCapabilities;
    import org.openqa.selenium.remote.RemoteWebDriver;
    import org.testng.AssertJUnit;
    
    /**
     * @author CoderInfo
     * @E-mail coderinfo@163.com
     *
     */
    public class RemoteWebDriverDemo {
    
    	private static final String URL = "http://www.baidu.com";
    	private static WebDriver driver;
    
    	@Before
    	public void setUp() throws Exception {
    		DesiredCapabilities dc = DesiredCapabilities.chrome(); // 设置需要驱动的浏览器,其他的浏览器都是以此类推
    		driver = new RemoteWebDriver(new URL(
    				"http://10.127.206.130:4444/wd/hub"), dc); // 这个URL
    															// 10.127.206.130
    															// 是要remote PC 的IP
    															// Address,需要改为你自己的
    		driver.manage().timeouts().pageLoadTimeout(60, TimeUnit.SECONDS); // 设置页面加载超时的最大时长
    	}
    
    	@After
    	public void tearDown() throws Exception {
    		driver.quit();
    	}
    
    	@Test
    	public void test() throws InterruptedException {
    		driver.get(URL); // 访问度娘首页
    		driver.findElement(By.id("kw")).sendKeys("CoderInfo");
    		driver.findElement(By.id("su")).click();
    
    		Thread.sleep(10000);
    
    		AssertJUnit.assertEquals("CoderInfo_百度搜索", driver.getTitle());
    	}
    
    }
    


  相关解决方案