初学
Selenium WebDriver ,上网找了一些搭建环境的教程,综合尝试了一下,搭好了,Mark一下以便以后重新搭建参考。
第一步:准备文件
去官网(http://seleniumhq.org/download/)下载必要的文件:
1.Selenium Server (formerly the Selenium RC Server)最基本的jar包
2.Selenium Client & WebDriver Language Bindings(选择你熟悉的语言,如java)
3.Third Party Drivers, Bindings, and Plugins(若然你想在chrome上跑,需要下个chrome的驱动)
有这三个基本ok了
第二步:环境准备
1.eclipse(习惯用这个了就它吧)
2.Firefox浏览器(默认支持的浏览器,Firefox 10亲测可用,最新版本的不一定支持)
3.chrome(如果有需要的话)
以上浏览器都安装在默认路径,如果不是的话测试代码中需要配置
第三步:跑个程序测试一下
1.新建一个java工程,名字随意
2.贴上代码(代码转载自http://www.open-open.com/lib/view/open1354764154148.html):
public
class
ExampleForFireFox {
public
static
void
main(String[] args) {
// 如果你的 FireFox 没有安装在默认目录,那么必须在程序中设置
// System.setProperty("webdriver.firefox.bin", "D:\\Program Files\\Mozilla Firefox\\firefox.exe");
// 创建一个 FireFox 的浏览器实例
WebDriver driver =
new
FirefoxDriver();
// 让浏览器访问 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(
"zTree"
);
// 提交 input 所在的 form
element.submit();
// 通过判断 title 内容等待搜索页面加载完毕,间隔10秒
(
new
WebDriverWait(driver,
10
)).until(
new
ExpectedCondition<Boolean>() {
public
Boolean apply(WebDriver d) {
return
d.getTitle().toLowerCase().endsWith(
"ztree"
);
}
});
// 显示搜索结果页面的 title
System.out.println(
"2 Page title is: "
+ driver.getTitle());
//关闭浏览器
driver.quit();
}
}
3.开始运行
4.大功告成,剩下的就找教程慢慢学吧
注意:上面代码有注释,对于没有把浏览器安装在默认路径的,需要调用System.setProperty函数设置
最后附上使用chrome测试的代码:
public class ExampleForChrome {
public static void main(String[] args) throws IOException {
// 设置 chrome 的路径
System.setProperty(
"webdriver.chrome.driver",
"C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe");
// 创建一个 ChromeDriver 的接口,用于连接 Chrome
@SuppressWarnings("deprecation")
ChromeDriverService service = new ChromeDriverService.Builder()
.usingDriverExecutable(
new File(
"C:\\software\\Selenium\\chromedriver_win32\\chromedriver.exe"))
.usingAnyFreePort().build();
service.start();
// 创建一个 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("zTree");
// 提交 input 所在的 form
element.submit();
// 通过判断 title 内容等待搜索页面加载完毕,间隔10秒
(new WebDriverWait(driver, 10)).until(new ExpectedCondition<Boolean>() {
public Boolean apply(WebDriver d) {
return d.getTitle().toLowerCase().endsWith("百度搜索");
}
});
// 显示搜索结果页面的 title
System.out.println("2 Page title is: " + driver.getTitle());
// 关闭浏览器
driver.quit();
// 关闭 ChromeDriver 接口
service.stop();
}
}