1. 程式人生 > >用selenium實現用谷歌瀏覽器開啟指定網址

用selenium實現用谷歌瀏覽器開啟指定網址

一:前期準備

需要下載兩個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")));	
	}
}