新聞中心
Selenium是一個(gè)用于Web應(yīng)用程序測(cè)試的工具。Selenium測(cè)試直接運(yùn)行在瀏覽器中,就像真正的用戶(hù)在操作一樣。而對(duì)于爬蟲(chóng)來(lái)說(shuō),使用Selenium操控瀏覽器來(lái)爬取網(wǎng)上的數(shù)據(jù)那么肯定是爬蟲(chóng)中的殺手武器。這里,我將介紹selenium + 谷歌瀏覽器的一般使用。首先會(huì)介紹如何安裝部署環(huán)境,然后貼出一些本人所使用的一些方法,最后給出github地址,供大家下載。
10年積累的網(wǎng)站建設(shè)、成都網(wǎng)站建設(shè)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶(hù)對(duì)網(wǎng)站的新想法和需求。提供各種問(wèn)題對(duì)應(yīng)的解決方案。讓選擇我們的客戶(hù)得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站設(shè)計(jì)制作后付款的網(wǎng)站建設(shè)流程,更有羅城免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
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)需要匹配。
具體可以見(jiàn):https://www.jb51.net/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)單來(lái)說(shuō)是一個(gè)jar包管理插件,通過(guò)配置的方式在maven倉(cāng)庫(kù)下載你所需要的jar包
運(yùn)行代碼進(jìn)行測(cè)試
1、測(cè)試HelloWorld,方法里面具體的內(nèi)容請(qǐng)到方法里面查看,注釋都是有寫(xiě)的
/** * 用來(lái)測(cè)試第一個(gè)代碼,訪(fǎng)問(wèn)百度 */ @Test public void testHelloWorld() throws Exception { //開(kāi)啟個(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)下圖情況,說(shuō)明你環(huán)境上沒(méi)有問(wèn)題了
2、測(cè)試自動(dòng)輸入
/** * 測(cè)試向input標(biāo)簽輸入值 */ @Test public void testInputStrByJS(){ //開(kāi)啟個(gè)瀏覽器并且輸入鏈接 WebDriver driver = PageUtils.getChromeDriver("https://www.baidu.com/"); //向input輸入值 PageUtils.inputStrByJS(driver, "kw", "月之暗面 博客園"); }
如果出現(xiàn)下面情況說(shuō)明你測(cè)試成功了
3、測(cè)試點(diǎn)擊
/** * 測(cè)試點(diǎn)擊 */ @Test public void testScrollToElementAndClick() throws Exception { //1、開(kāi)啟個(gè)瀏覽器并且輸入鏈接 WebDriver driver = PageUtils.getChromeDriver("https://www.baidu.com/"); //2、向百度輸入框輸入需要查詢(xún)的值 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 ListdivElements = 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)下面情況,說(shuō)明測(cè)試成功了
4、測(cè)試標(biāo)簽頁(yè)切換
/** * 測(cè)試切換到另一個(gè)標(biāo)簽頁(yè) */ @Test public void testGetAnotherPage() throws Exception { //1、開(kāi)啟個(gè)瀏覽器并且輸入鏈接 WebDriver driver = PageUtils.getChromeDriver("https://www.baidu.com/"); //2、向百度輸入框輸入需要查詢(xún)的值 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 ListdivElements = 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)下面的情況說(shuō)明你測(cè)試成功了
3.總結(jié)
Selenium是一個(gè)用于Web應(yīng)用程序測(cè)試的工具。但是也可以用來(lái)做爬蟲(chóng),如果需要得到對(duì)應(yīng)的數(shù)據(jù),可以通過(guò) element.getText()的方法得到,element的類(lèi)型是WebElement。期間可能會(huì)有很多錯(cuò)誤,但是希望大家能夠通過(guò)度娘,谷歌等方式一一解決。本人因?yàn)槟芰τ邢蓿胁蛔慊蝈e(cuò)誤之處,希望能夠被指出。
最后再次填上這個(gè)的代碼地址:https://github.com/lunaMoon1010/SeleniumDemo
如果要詳細(xì)怎么使用請(qǐng)?jiān)L問(wèn):http://www.webdriver.org/nav1/
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。
當(dāng)前標(biāo)題:selenium+ChromeDriver安裝及使用方法
分享地址:http://ef60e0e.cn/article/jcpppe.html