標籤:ace lan sea ref man 元素 ges 啟動 str
#抓取內容WebDriver driver = new HtmlUnitDriver(false);driver.get(url);String html = driver.getPageSource();#如何想等待一會元素渲染完畢driver.manage().timeouts().implicitlyWait(2, TimeUnit.SECONDS);
#進行百度搜尋public static void doSearch(String keyword) { final String url = "http://www.baidu.com"; WebDriver driver = new HtmlUnitDriver(false); driver.get(url); driver.findElement(By.id("kw")).sendKeys(keyword); Actions action = new Actions(driver); action.sendKeys(Keys.ENTER).perform(); System.out.println(driver.getPageSource());}
1 Selenium可支援的【真實】瀏覽器驅動:
PC端驅動:firefox、safari、ie、chrome、opera driver
移動端驅動: Windows Phone、Selendroid、ios-driver、Appium 支援iphone、ipad、android、FirefoxOS【第三方】
safari、ff都是以外掛程式形式驅動瀏覽器本身的;ie、chrome都是通過二進位檔案來驅動瀏覽器本身的;
這些driver都是直接啟動並通過呼叫瀏覽器的底層介面來驅動瀏覽器的,因此具有最真實的使用者情境類比,主要用於進行web的相容性測試使用。
2 selenium可支援的【偽瀏覽器】驅動:
HtmlUnit 、PhantomJS
它們都不是真正的在瀏覽器、都沒有GUI,而是具有支援html、js等解析能力的類瀏覽器程式;這些程式不會渲染出網頁的顯示內容,但是支援頁面元素的尋找、JS的執行等;由於不進行css及GUI渲染,所以運行效率上會比真實瀏覽器要快很多,主要用在功能性測試上面。htmlunit是Java實現的類瀏覽器程式,包含在selenium server中,無需驅動,直接執行個體化即可;其js的解析引擎是Rhino。
HtmlUnitDriver 網頁內容動態抓取