第一步:首先下载资源包:
selenium-java-2.44.0.jar , selenium-java-2.44.0-srcs.jar, selenium-java-client-driver.jar , selenium-server.jar , selenium-server-standalone-2.44.0.jar
第二步: 打开Eclipse 创建一个工程, 导入上面资源包.
第三步:创建一个类[ TestDriver ],带main 方法如下源码:
import java.io.File;
import java.io.IOException;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriverService;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;
public class TestDriver {
public static void main(String[] args) {
// TODO Auto-generated method stub
// 定义 chrome driver驱动路径
String ChromeDriverPath = "D:\\QiuLiang_work\\Eclipse_work\\SeleniumDemo\\driver\\chromedriver.exe";
// chrome 路径
String DriverPath = "C:\\Documents and Settings\\sq\\Local Settings\\Application Data\\Google\\Chrome\\Application\\chrome.exe";
System.setProperty("webdriver.chrome.driver", DriverPath);
// 创建一个 ChromeDriver 的接口,用于连接 Chrome
@SuppressWarnings("deprecation")
ChromeDriverService service = new ChromeDriverService.Builder()
.usingDriverExecutable(new File(ChromeDriverPath)).usingAnyFreePort().build();
try {
service.start();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// 创建一个 Chrome 的浏览器实例
WebDriver driver = new RemoteWebDriver(service.getUrl(), DesiredCapabilities.chrome());
// 让浏览器访问 Baidu
driver.get("http://www.baidu.com");
// 用下面代码也可以实现
// driver.navigate().to("http://www.baidu.com");
// 获取 网页的 title
System.out.println("1 Page title is: " + driver.getTitle());
// 通过 id 找到 input 的 DOM
WebElement element = driver.findElement(By.id("kw"));
// 输入关键字
element.sendKeys("Jack_test");
// 提交 input 所在的 form
element.submit();
}
}
另外一个实例.也可以参考: 去哪儿 网站
他们网站有点点不一样的地方,需要大家注意,在输入去那里和到那里的时候,不回车,他们有一个层是不会消失.所以做了一点特殊处理. 红色标记.
import java.io.File;
import java.io.IOException;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriverService;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;
public class TestDriver {
// 这个是关于chromedriver 进程,否则每次启动,会生成一个chromedriver 的进程.多了会导致机器非常慢.
public static void closeAllChrome() throws IOException
{
Runtime.getRuntime().exec("cmd /c tskill chrome");
Runtime.getRuntime().exec("cmd /c tskill chromedriver");
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
public static void main(String[] args) throws Exception {
TestDriver.closeAllChrome();// 每次运行时,首先删除所以的chromedriver 进程.
// 定义 chrome driver驱动路径
String ChromeDriverPath = "D:\\QiuLiang_work\\Eclipse_work\\SeleniumDemo\\driver\\chromedriver.exe";
// chrome 路径
String DriverPath = "C:\\Documents and Settings\\sq\\Local Settings\\Application Data\\Google\\Chrome\\Application\\chrome.exe";
System.setProperty("webdriver.chrome.driver", DriverPath);
// 创建一个 ChromeDriver 的接口,用于连接 Chrome
@SuppressWarnings("deprecation")
ChromeDriverService service = new ChromeDriverService.Builder()
.usingDriverExecutable(new File(ChromeDriverPath)).usingAnyFreePort().build();
service.start();
// 创建一个 Chrome 的浏览器实例
WebDriver driver = new RemoteWebDriver(service.getUrl(), DesiredCapabilities.chrome());
// 让浏览器访问 Baidu
driver.get("http://www.qunar.com");
// 用下面代码也可以实现
// driver.navigate().to("http://www.baidu.com");
// 获取 网页的 title
System.out.println("1 Page title is: " + driver.getTitle());
Thread.sleep(8000); //等待8秒
// 通过 id 找到 input 的 DOM
WebElement element = driver.findElement(By.name("fromCity"));
WebElement element1 = driver.findElement(By.name("toCity"));
String xpathButton = "//div[@class='crl_group crl_group_submit']//button";
WebElement element2 = driver.findElement(By.xpath(xpathButton));
element.clear();
// 输入关键字
element.sendKeys("北京(BJS)");
String fff = "//input[@name='fromCity']/preceding-sibling::*[1]//b";
WebElement elementCode = driver.findElement(By.xpath(fff));
Thread.sleep(1000);//等待1秒
elementCode.click();
Thread.sleep(1000);//等待1秒
elementCode.click();
element1.clear();
// 输入关键字
element1.sendKeys("上海(SHA)");
String toCity = "//input[@name='toCity']/preceding-sibling::*[1]//b";
WebElement toCityCode = driver.findElement(By.xpath(toCity));
Thread.sleep(1000);//等待1秒
toCityCode.click();
Thread.sleep(1000);//等待1秒
toCityCode.click();
// 输入关键字
element2.click();
}
}
源码路径: http://download.csdn.net/detail/jack_test1/9091119