資料來源 : http://seleniumhq.org/
說明:
selenium 是一個用來處理自動測試的工具,它有一個selenium server 可以掛上測試的腳本來測試,但這邊要介紹的是直接使用 selenium java driver 直接call api的方式來處理。
網址:
http://seleniumhq.org/
step 1: 下載 jar (download java driver)
http://seleniumhq.org/download/
step 2: 下載 chromeDriver.exe
http://code.google.com/p/chromedriver/downloads/list
step 3: 實作(以chrome為例)
import java.util.Arrays;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.support.ui.ExpectedCondition;
import org.openqa.selenium.support.ui.WebDriverWait;
public class GmailLogin {
WebDriver driver = null;
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
GmailLogin() {
capabilities.setCapability("chrome.switches",
Arrays.asList("--start-maximized"));
}
public void login(){
System.setProperty("webdriver.chrome.driver", "D:/chromedriver.exe");
driver = new ChromeDriver(capabilities);
WebDriverWait wait = new WebDriverWait(driver, 5);
driver.get("https://accounts.google.com/ServiceLogin?hl=zh-TW&continue=http://www.google.com.tw/");
System.out.println("##start login ");
// Login
wait.until(new ExpectedCondition<Boolean>() {
@Override
public Boolean apply(WebDriver d) {
System.out.println("## login User and Password!");
WebElement element = driver.findElement(By
.id("Email"));
element.sendKeys("username@gmail.com");
element = driver.findElement(By.id("Passwd"));
element.sendKeys("passowrd");
element = driver.findElement(By.id("signIn"));
element.click();
return true;
}
});
driver.navigate().to("https://mail.google.com/mail");
}
/**
* @param args
*/
public static void main(String[] args) {
GmailLogin gl = new GmailLogin();
gl.login();
}
}