selenium + ChromeDriver

    Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操做同样。而对于爬虫来讲,使用Selenium操控浏览器来爬取网上的数据那么确定是爬虫中的杀手武器。这里,我将介绍selenium + 谷歌浏览器的通常使用。首先会介绍如何安装部署环境,而后贴出一些本人所使用的一些方法,最后给出github地址,供你们下载。css


1. selenium 环境配置

selenium 官网地址:http://www.seleniumhq.org/download/
导入 selenium 的 jar 包有多种方式,这里介绍两个:  
第一种是直接下载,而后将下载中的 jar 包复制到eclipse或者idea中,而后添加便可

   
 
第二种是使用maven
 

2. 下载github代码而且进行测试

谷歌浏览使用的版本是:60.0.3112.78,这里注意,谷歌浏览器和谷歌驱动须要匹配。具体能够见: http://blog.csdn.net/llbacyal/article/details/78563992
 
 idea使用的版本是:2016.12
Java使用的版本是:1.8
 
  • 首先在github上下载代码,地址为:https://github.com/lunaMoon1010/SeleniumDemo
 
 
  • 导入项目 
一、解压后,使用idea导入该项目
 
二、选择刚刚解压的项目
 三、让maven导入jar包,maven简单来讲是一个jar包管理插件,经过配置的方式在maven仓库下载你所须要的jar包
  • 运行代码进行测试
 
一、测试HelloWorld,方法里面具体的内容请到方法里面查看,注释都是有写的
 
 
/**
     * 用来测试第一个代码,访问百度
     */
    @Test
    public void testHelloWorld() throws Exception {
        //开启个浏览器而且输入连接
        WebDriver driver = PageUtils.getChromeDriver("https://www.baidu.com/");
        //获得浏览器的标题
        System.out.println(driver.getTitle());
        Thread.sleep(5000);
        //关闭浏览器 下面是关闭全部标签页,还有一个代码是 driver.close();, 关闭当前标签页
        driver.quit();
    }
 

 
若是你运行出现下图状况,说明你环境上没有问题了
 
二、测试自动输入
 
 /**
     * 测试向input标签输入值
     */
    @Test
    public void testInputStrByJS(){
        //开启个浏览器而且输入连接
        WebDriver driver = PageUtils.getChromeDriver("https://www.baidu.com/");
        //向input输入值
        PageUtils.inputStrByJS(driver, "kw", "月之暗面 博客园");
    }

 

 

 
若是出现下面状况说明你测试成功了
 
 
三、测试点击
/**
     * 测试点击
     */
    @Test
    public void testScrollToElementAndClick() throws Exception {
        //一、开启个浏览器而且输入连接
        WebDriver driver = PageUtils.getChromeDriver("https://www.baidu.com/");

        //二、向百度输入框输入须要查询的值
        PageUtils.inputStrByJS(driver, "kw", "月之暗面 博客园");

        //三、获得百度一下的标签
        WebElement submitElement = driver.findElement(By.cssSelector("input#su"));

        //四、点击百度一下
        PageUtils.scrollToElementAndClick(submitElement, driver);

        //休息3秒,加载数据
        Thread.sleep(3000);

        //五、首先找到 id 为 content_left 的 div 下面的全部 div
        List<WebElement> divElements = driver.findElements(By.cssSelector("div#content_left div"));
        //六、找到搜索的第一个连接
        WebElement aElement = divElements.get(0).findElement(By.cssSelector("div.f13 a[href]"));

        //七、点击该连接
        PageUtils.scrollToElementAndClick(aElement, driver);
    }

 

 
若是出现下面状况,说明测试成功了
 
 四、测试标签页切换
 
/**
     * 测试切换到另外一个标签页
     */
    @Test
    public void testGetAnotherPage() throws Exception {
        //一、开启个浏览器而且输入连接
        WebDriver driver = PageUtils.getChromeDriver("https://www.baidu.com/");

        //二、向百度输入框输入须要查询的值
        PageUtils.inputStrByJS(driver, "kw", "月之暗面 博客园");

        //三、获得百度一下的标签
        WebElement submitElement = driver.findElement(By.cssSelector("input#su"));

        //四、点击百度一下
        PageUtils.scrollToElementAndClick(submitElement, driver);

        //休息3秒,加载数据
        Thread.sleep(3000);

        //五、首先找到 id 为 content_left 的 div 下面的全部 div
        List<WebElement> divElements = driver.findElements(By.cssSelector("div#content_left div"));
        //六、找到搜索的第一个连接
        WebElement aElement = divElements.get(0).findElement(By.cssSelector("div.f13 a[href]"));

        //七、点击该连接
        PageUtils.scrollToElementAndClick(aElement, driver);

        //八、当前页面时百度的页面
        //将浏览器对象强制转为能够执行js的对象
        System.out.println("如今的页面是:"+driver.getTitle());
        //九、切换到博客园页面
        PageUtils.getAnotherPage(driver);
        //将浏览器对象强制转为能够执行js的对象
        System.out.println("如今的页面是:"+driver.getTitle());
    }

 

 
若是出现下面的状况说明你测试成功了

 

3.总结
 
Selenium是一个用于Web应用程序测试的工具。可是也能够用来作爬虫,若是须要获得对应的数据,能够经过 element.getText()的方法获得,element的类型是WebElement。期间可能会有不少错误,可是但愿你们可以经过度娘,谷歌等方式一一解决。本人由于能力有限,有不足或错误之处,但愿可以被指出。
最后再次填上这个的代码地址:https://github.com/lunaMoon1010/SeleniumDemo
若是要详细怎么使用请访问:http://www.webdriver.org/nav1/
 
 



相关文章
相关标签/搜索