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/
 
 



相關文章
相關標籤/搜索