欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

selenium + ChromeDriver安裝及使用方法

 更新時(shí)間:2019年06月12日 10:54:13   作者:月之暗面  
這篇文章主要介紹了selenium + ChromeDriver安裝及使用方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

Selenium是一個(gè)用于Web應(yīng)用程序測(cè)試的工具。Selenium測(cè)試直接運(yùn)行在瀏覽器中,就像真正的用戶在操作一樣。而對(duì)于爬蟲來說,使用Selenium操控瀏覽器來爬取網(wǎng)上的數(shù)據(jù)那么肯定是爬蟲中的殺手武器。這里,我將介紹selenium + 谷歌瀏覽器的一般使用。首先會(huì)介紹如何安裝部署環(huán)境,然后貼出一些本人所使用的一些方法,最后給出github地址,供大家下載。

1. selenium 環(huán)境配置

selenium 官網(wǎng)地址:http://www.seleniumhq.org/download/

導(dǎo)入selenium 的 jar 包有多種方式,這里介紹兩個(gè):

第一種是直接下載,然后將下載中的 jar 包復(fù)制到eclipse或者idea中,然后添加即可

第二種是使用maven

2. 下載github代碼并且進(jìn)行測(cè)試

谷歌瀏覽使用的版本是:60.0.3112.78,這里注意,谷歌瀏覽器和谷歌驅(qū)動(dòng)需要匹配。

具體可以見:http://www.dbjr.com.cn/article/151629.htm

idea使用的版本是:2016.12

Java使用的版本是:1.8

首先在github上下載代碼,地址為:https://github.com/lunaMoon1010/SeleniumDemo

導(dǎo)入項(xiàng)目

1、解壓后,使用idea導(dǎo)入該項(xiàng)目

2、選擇剛剛解壓的項(xiàng)目

3、讓maven導(dǎo)入jar包,maven簡(jiǎn)單來說是一個(gè)jar包管理插件,通過配置的方式在maven倉(cāng)庫(kù)下載你所需要的jar包

運(yùn)行代碼進(jìn)行測(cè)試

1、測(cè)試HelloWorld,方法里面具體的內(nèi)容請(qǐng)到方法里面查看,注釋都是有寫的

/**
  * 用來測(cè)試第一個(gè)代碼,訪問百度
  */
 @Test
 public void testHelloWorld() throws Exception {
  //開啟個(gè)瀏覽器并且輸入鏈接
  WebDriver driver = PageUtils.getChromeDriver("https://www.baidu.com/");
  //得到瀏覽器的標(biāo)題
  System.out.println(driver.getTitle());
  Thread.sleep(5000);
  //關(guān)閉瀏覽器 下面是關(guān)閉所有標(biāo)簽頁(yè),還有一個(gè)代碼是 driver.close();, 關(guān)閉當(dāng)前標(biāo)簽頁(yè)
  driver.quit();
 }

如果你運(yùn)行出現(xiàn)下圖情況,說明你環(huán)境上沒有問題了

2、測(cè)試自動(dòng)輸入

/**
  * 測(cè)試向input標(biāo)簽輸入值
  */
 @Test
 public void testInputStrByJS(){
  //開啟個(gè)瀏覽器并且輸入鏈接
  WebDriver driver = PageUtils.getChromeDriver("https://www.baidu.com/");
  //向input輸入值
  PageUtils.inputStrByJS(driver, "kw", "月之暗面 博客園");
 }

如果出現(xiàn)下面情況說明你測(cè)試成功了

3、測(cè)試點(diǎn)擊

/**
  * 測(cè)試點(diǎn)擊
  */
 @Test
 public void testScrollToElementAndClick() throws Exception {
  //1、開啟個(gè)瀏覽器并且輸入鏈接
  WebDriver driver = PageUtils.getChromeDriver("https://www.baidu.com/");

  //2、向百度輸入框輸入需要查詢的值
  PageUtils.inputStrByJS(driver, "kw", "月之暗面 博客園");

  //3、得到百度一下的標(biāo)簽
  WebElement submitElement = driver.findElement(By.cssSelector("input#su"));

  //4、點(diǎn)擊百度一下
  PageUtils.scrollToElementAndClick(submitElement, driver);

  //休息3秒,加載數(shù)據(jù)
  Thread.sleep(3000);

  //5、首先找到 id 為 content_left 的 div 下面的所有 div
  List<WebElement> divElements = driver.findElements(By.cssSelector("div#content_left div"));
  //6、找到搜索的第一個(gè)鏈接
  WebElement aElement = divElements.get(0).findElement(By.cssSelector("div.f13 a[href]"));

  //7、點(diǎn)擊該鏈接
  PageUtils.scrollToElementAndClick(aElement, driver);
 }

如果出現(xiàn)下面情況,說明測(cè)試成功了

4、測(cè)試標(biāo)簽頁(yè)切換

/**
  * 測(cè)試切換到另一個(gè)標(biāo)簽頁(yè)
  */
 @Test
 public void testGetAnotherPage() throws Exception {
  //1、開啟個(gè)瀏覽器并且輸入鏈接
  WebDriver driver = PageUtils.getChromeDriver("https://www.baidu.com/");

  //2、向百度輸入框輸入需要查詢的值
  PageUtils.inputStrByJS(driver, "kw", "月之暗面 博客園");

  //3、得到百度一下的標(biāo)簽
  WebElement submitElement = driver.findElement(By.cssSelector("input#su"));

  //4、點(diǎn)擊百度一下
  PageUtils.scrollToElementAndClick(submitElement, driver);

  //休息3秒,加載數(shù)據(jù)
  Thread.sleep(3000);

  //5、首先找到 id 為 content_left 的 div 下面的所有 div
  List<WebElement> divElements = driver.findElements(By.cssSelector("div#content_left div"));
  //6、找到搜索的第一個(gè)鏈接
  WebElement aElement = divElements.get(0).findElement(By.cssSelector("div.f13 a[href]"));

  //7、點(diǎn)擊該鏈接
  PageUtils.scrollToElementAndClick(aElement, driver);

  //8、當(dāng)前頁(yè)面時(shí)百度的頁(yè)面
  //將瀏覽器對(duì)象強(qiáng)制轉(zhuǎn)為可以執(zhí)行js的對(duì)象
  System.out.println("現(xiàn)在的頁(yè)面是:"+driver.getTitle());
  //9、切換到博客園頁(yè)面
  PageUtils.getAnotherPage(driver);
  //將瀏覽器對(duì)象強(qiáng)制轉(zhuǎn)為可以執(zhí)行js的對(duì)象
  System.out.println("現(xiàn)在的頁(yè)面是:"+driver.getTitle());
 }

如果出現(xiàn)下面的情況說明你測(cè)試成功了

3.總結(jié)

Selenium是一個(gè)用于Web應(yīng)用程序測(cè)試的工具。但是也可以用來做爬蟲,如果需要得到對(duì)應(yīng)的數(shù)據(jù),可以通過 element.getText()的方法得到,element的類型是WebElement。期間可能會(huì)有很多錯(cuò)誤,但是希望大家能夠通過度娘,谷歌等方式一一解決。本人因?yàn)槟芰τ邢?,有不足或錯(cuò)誤之處,希望能夠被指出。

最后再次填上這個(gè)的代碼地址:https://github.com/lunaMoon1010/SeleniumDemo

如果要詳細(xì)怎么使用請(qǐng)?jiān)L問:http://www.webdriver.org/nav1/

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • java.io.EOFException: Unexpected end of ZLIB input stream異常解決

    java.io.EOFException: Unexpected end of 

    本文主要介紹了java.io.EOFException: Unexpected end of ZLIB input stream異常解決,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • Spring框架花式創(chuàng)建Bean的n種方法(小結(jié))

    Spring框架花式創(chuàng)建Bean的n種方法(小結(jié))

    這篇文章主要介紹了Spring框架花式創(chuàng)建Bean的n種方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • 分模塊構(gòu)建Maven工程的方法步驟

    分模塊構(gòu)建Maven工程的方法步驟

    這篇文章主要介紹了分模塊構(gòu)建Maven工程的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • SpringCloud Zuul在何種情況下使用Hystrix及問題小結(jié)

    SpringCloud Zuul在何種情況下使用Hystrix及問題小結(jié)

    這篇文章主要介紹了SpringCloud Zuul在何種情況下使用Hystrix 及問題小結(jié),感興趣的朋友跟隨小編一起看看吧
    2018-11-11
  • Java8?Stream流的常用方法匯總

    Java8?Stream流的常用方法匯總

    Java8?API添加了一個(gè)新的抽象稱為流Stream,可以讓你以一種聲明的方式處理數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于Java8?Stream流的常用方法,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-07-07
  • 聊一聊jdk1.8中的ArrayList 底層數(shù)組是如何擴(kuò)容的

    聊一聊jdk1.8中的ArrayList 底層數(shù)組是如何擴(kuò)容的

    這篇文章主要介紹了聊一聊jdk1.8中的ArrayList 底層數(shù)組是如何擴(kuò)容的,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • Spring整合Springmvc的相關(guān)介紹

    Spring整合Springmvc的相關(guān)介紹

    今天小編就為大家分享一篇關(guān)于Spring整合Springmvc的相關(guān)介紹,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • 詳解java中spring里的三大攔截器

    詳解java中spring里的三大攔截器

    在本篇文章里我們給大家詳細(xì)講述了java中spring里的三大攔截器相關(guān)知識(shí)點(diǎn)以及用法代碼,需要的朋友們學(xué)習(xí)下。
    2018-10-10
  • Spring Cloud Gateway去掉url前綴

    Spring Cloud Gateway去掉url前綴

    這篇文章主要介紹了Spring Cloud Gateway去掉url前綴的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • 在SpringBoot中注入RedisTemplate實(shí)例異常的解決方案

    在SpringBoot中注入RedisTemplate實(shí)例異常的解決方案

    這篇文章主要介紹了在SpringBoot中注入RedisTemplate實(shí)例異常的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01

最新評(píng)論