在這篇文中我簡單介紹JAVA如何使用Selenium及展示一個範例。
前置步驟:
- 下載 Selenium 的 Java Lib
到Selenium的下載頁面下載 - Selenium Client & WebDriver Language Bindings
- Selenium Standalone Server (我下載的為3.11.0)
- 下載各瀏覽器的WebDriver
- Chrome : ChromeDriver
- Firefox : geckodriver
- 在Java程式中引入Library和指定WebDriver就可以開始控制瀏覽器了。
import java.util.List; import java.util.concurrent.TimeUnit; import org.openqa.selenium.By; import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.firefox.FirefoxDriver; public class SeleniumTest1 { public static void main(String[] args) { System.out.println("Start"); //自己選擇要用的瀏覽器 WebDriver //用Chrome System.setProperty("webdriver.chrome.driver","D:\\JavaLib\\Selenium\\webdrivers\\Chrome\\chromedriver.exe"); WebDriver driver = new ChromeDriver(); //用Firefox //System.setProperty("webdriver.gecko.driver","D:\\javaLib\\selenium-java-3.10.0\\Firefox\\geckodriver.exe"); //WebDriver driver = new FirefoxDriver(); //使用implicitlyWait,抓取DOM時,會等DOM出現才抓,最多等10秒 driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); driver.get("https://www.google.com.tw/"); //開啟瀏覽器到 Google 首頁 //抓取DOM element,#lst-ib 為Google搜尋框 WebElement searchInput = driver.findElement(By.id("lst-ib")); //執行Javascript範例 //將Google搜尋框打上字,"keyword" JavascriptExecutor javascriptExecutor = (JavascriptExecutor) driver; javascriptExecutor.executeScript("arguments[0].value='keyword';", searchInput); //用WebElement物件直接操做DOM element範例 //抓取DOM element,name=btnK 為Google搜尋按鈕 WebElement searchBtn = driver.findElement(By.name("btnK")); searchBtn.click(); //印出十頁的所有搜尋結果Title和Link url for (int i = 0; i < 10; i++) { //抓取DOM elements, (.r a) 為Google搜尋結果的link List<WebElement> searchReultATagList = driver.findElements(By.cssSelector(".r a")); for (WebElement searchReultATag : searchReultATagList) { System.out.println(searchReultATag.getText() + " : "); System.out.println(searchReultATag.getAttribute("href")); System.out.println("======================="); } //抓取DOM element, #pnnext 為Google搜尋下一頁按鈕 WebElement nextPageBtn = driver.findElement(By.id("pnnext")); nextPageBtn.click(); } driver.quit(); //關閉瀏覽器 } }
sss
參考資料
沒有留言 :
張貼留言