亚洲好骚综合-亚洲黄色录像-亚洲黄色网址-亚洲黄色网址大全-99久久99久久-99久久99久久精品国产

您的位置:軟件測(cè)試 > 開(kāi)源軟件測(cè)試 > 開(kāi)源功能測(cè)試工具 > Selenium
使用Selenium來(lái)抓取動(dòng)態(tài)加載的頁(yè)面
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2015/2/25 17:45:41 ] 推薦標(biāo)簽:Selenium 單元測(cè)試

  有些頁(yè)面是通過(guò)js以及ajax動(dòng)態(tài)加載的,例如:花瓣網(wǎng)。這時(shí)如果我們直接分析原始頁(yè)面的html,是得不到有效的信息的。當(dāng)然,因?yàn)闊o(wú)論怎樣動(dòng)態(tài)加載,基礎(chǔ)信息總歸是包含在初始頁(yè)面中得,所以我們可以用爬蟲(chóng)代碼來(lái)模擬js代碼,js讀取頁(yè)面元素值,我們也讀取頁(yè)面元素值;js發(fā)送ajax,我們拼湊參數(shù)、發(fā)送ajax并解析返回的json。這樣總歸是能做的,但是比較麻煩,有沒(méi)有比較省力的方法呢?比較好的方法大概是內(nèi)嵌一個(gè)瀏覽器了。
  Selenium是一個(gè)模擬瀏覽器,進(jìn)行自動(dòng)化測(cè)試的工具,它提供一組API可以與真實(shí)的瀏覽器內(nèi)核交互。Selenium是跨語(yǔ)言的,有Java、C#、python等版本,并且支持多種瀏覽器,chrome、firefox以及IE都支持。
  在Java項(xiàng)目中使用Selenium,需要做兩件事:
  在項(xiàng)目中引入Selenium的Java模塊,以Maven為例:
  <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>2.33.0</version> </dependency>
  下載對(duì)應(yīng)的driver,以chrome為例:http://code.google.com/p/chromedriver/downloads/list
  下載后,需要將driver的位置寫(xiě)到Java的環(huán)境變量里,例如我在mac下將其下載到了/Users/yihua/Downloads/chromedriver,則需要在程序里添加以下代碼(當(dāng)然在JVM參數(shù)里寫(xiě)-Dxxx=xxx也是可以的):
  System.getProperties().setProperty("webdriver.chrome.driver","/Users/yihua/Downloads/chromedriver");
  Selenium的API挺簡(jiǎn)單的,核心是WebDriver,下面是動(dòng)態(tài)渲染頁(yè)面,并獲取終html的代碼:
@Test
public void testSelenium() {
System.getProperties().setProperty("webdriver.chrome.driver", "/Users/yihua/Downloads/chromedriver");
WebDriver webDriver = new ChromeDriver();
webDriver.get("http://huaban.com/");
WebElement webElement = webDriver.findElement(By.xpath("/html"));
System.out.println(webElement.getAttribute("outerHTML"));
webDriver.close();
}
  值得注意的是,每次new ChromeDriver(),Selenium都會(huì)建立一個(gè)Chrome進(jìn)程,并使用一個(gè)隨機(jī)端口在Java中與chrome進(jìn)程進(jìn)行通信來(lái)交互。由此可見(jiàn)有兩個(gè)問(wèn)題:
  因此如果直接關(guān)閉Java程序,Chrome進(jìn)程可能是無(wú)法關(guān)閉的。這里需要顯示的調(diào)用webDriver.close()來(lái)關(guān)閉進(jìn)程。
  創(chuàng)建進(jìn)程的開(kāi)銷還是比較大的,盡量對(duì)webDriver進(jìn)行復(fù)用會(huì)比較好。可惜根據(jù)官方的文檔,webDriver不是線程安全的,所以我們需要建立一個(gè)webDriver池來(lái)保存它們。不清楚Selenium是否有這樣的接口,反正我是自己寫(xiě)了一個(gè)WebDriverPool來(lái)完成這個(gè)任務(wù)。

軟件測(cè)試工具 | 聯(lián)系我們 | 投訴建議 | 誠(chéng)聘英才 | 申請(qǐng)使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd
主站蜘蛛池模板: 99久久伊人 | 日韩精品专区 | 国产99re在线观看只有精品 | 天天操国产 | 久久国产午夜精品理论片34页 | 一级毛片成人免费看免费不卡 | 国产 欧美 日韩在线 | 日韩欧美一区二区三区不卡 | 香港三级日本三级人妇三级四 | 国产丝袜护土调教在线视频 | 日韩精品一区二区三区四区 | 亚洲综合无码一区二区 | 欧美日本在线视频 | 亚州一级毛片 | 毛片在线免费播放 | 亚洲视频在线观看视频 | 日韩欧美一及在线播放 | 美国一级毛片免费看成人 | 最近的2019中文字幕免费一页 | 青草热久精品视频在线观看 | www色视频在线观看 www精品一区二区三区四区 | 好吊色妇女免费视频免费 | 欧美一级免费观看 | 国产三级第一页 | 高清国产一区二区三区 | 无收费看污网站 | 成人欧美网站免费 | 国产精品视频26uuu | 国产亚洲精品看片在线观看 | 午夜片在线观看 | 最近中文字幕免费完整国语 | 一色屋成人免费精品网站 | 天天干天天色综合 | 91午夜精品亚洲一区二区三区 | 一级二级三级黄色片 | 日韩视频免费在线观看 | 亚洲精品美女视频 | 免费看黄片毛片 | 午夜剧场操一操 | 黄色片视频在线播放 | 玖玖国产 |