Selenium是一個用於Web應用程序測試的工具。Selenium測試直接運行在瀏覽器中,就像真正的用戶在操做同樣。而對於爬蟲來講,使用Selenium操控瀏覽器來爬取網上的數據那麼確定是爬蟲中的殺手武器。這裏,我將介紹selenium + 谷歌瀏覽器的通常使用。首先會介紹如何安裝部署環境,而後貼出一些本人所使用的一些方法,最後給出github地址,供你們下載。css
/** * 用來測試第一個代碼,訪問百度 */ @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()); }