用selenium實現用谷歌瀏覽器開啟指定網址
阿新 • • 發佈:2019-01-26
一:前期準備
需要下載兩個jar包(我這裡是2.25.0版本的,可以在網上下載最新的)和一個exe檔案1:selenium-java-2.25.0.jar
2:selenium-server-standalone-2.25.0.jar
3:chromedriver.exe
二:匯入包
1:在新建的專案下,新加一個lib資料夾,將上面提到的那兩個包複製進去
2:對lib資料夾下的jar檔案進行滑鼠右鍵操作(如下圖所示),將包匯入到專案中,
三:開啟谷歌瀏覽器訪問相關url
下方的這部分可以實現用自動化的用谷歌瀏覽器開啟相應的網站。
注意,將chromedriver.exe檔案放在某個目錄中,然後在下方程式碼塊的第二行來進行配置,這一部分必不可少。
WebDriver driver; System.setProperty("webdriver.chrome.driver","E:/seleniumTest/chromedriver.exe");//這一步必不可少 driver = new ChromeDriver(); driver.manage().timeouts().implicitlyWait(2, TimeUnit.SECONDS); driver.get("http://192.168.197.241");
當然,有時候這樣配置也會出現開啟谷歌瀏覽器失敗的問題,那可以將chromedriver.exe檔案直接放在谷歌瀏覽器的安裝目錄下,然後在web上進行配置,
比如在我本地環境下是:System.setProperty("webdriver.chrome.driver","C:/Program Files/Google/Chrome/Application/chromedriver.exe");
三:對web頁面進行簡單的輸入使用者名稱和密碼進行登陸
經過上方的操作之後,可以對web頁面的空間進行一些操作了,下面我貼出的測試的程式碼實現某個網站的簡單登陸功能
Test.java檔案
import java.util.concurrent.TimeUnit;
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.support.ui.ExpectedCondition;
import org.openqa.selenium.support.ui.WebDriverWait;
import test.Login;
public class Test {
//private boolean treeGenerated = false;
public static void main(String[] args) {
WebDriver driver;
System.setProperty("webdriver.chrome.driver","E:/seleniumTest/chromedriver.exe");//這一步必不可少
driver = new ChromeDriver();
driver.manage().timeouts().implicitlyWait(2, TimeUnit.SECONDS);
driver.get("http://11.11.11.23");
// wait for page loaded
//這裡開始就可以自由的對web的各個空間進行自動化操作啦
(new WebDriverWait(driver, 10))
.until(new ExpectedCondition<WebElement>() {
public WebElement apply(WebDriver d) {
return d.findElement(By.id("login"));
}
});
driver.manage().deleteAllCookies();
Login login = new Login(driver);
login.login();
}
}
Login.java檔案
package test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.ui.ExpectedCondition;
import org.openqa.selenium.support.ui.WebDriverWait;
public class Login {
WebDriver driver;
WebElement loginBtn;
WebElement userName;
WebElement password;
public Login(WebDriver driver){
this.driver = driver;
//獲取頁面的id節點
loginBtn = driver.findElement(By.id("login"));
userName = driver.findElement(By.id("userName"));
password = driver.findElement(By.id("password"));
}
public void login(){
//對頁面的輸入框和按鈕進行點選
userName.clear();
password.clear();
userName.sendKeys("zhangsan");
password.sendKeys("123456");
loginBtn.click();
// wait for page loaded
(new WebDriverWait(driver, 10))
.until(new ExpectedCondition<WebElement>() {
public WebElement apply(WebDriver d) {
return d.findElement(By.id("mainPage"));
}
});
driver.switchTo().defaultContent();
driver.switchTo().frame(driver.findElement(By.id("mainPage")));
}
}