本文转载自:
https://www.cnblogs.com/sincoolvip/p/7451652.html 作者:sincoolvip 转载请注明该声明。
我只能说因为版本冲突,简直太折腾了,而搜了无数个博友的帖子才找到正确条案,就不能好好的写篇文章吗?
最近真的是太闲太闲了,平时没事总得搞点技术,不然心里感觉好空虚,
最近看上了selenium,所以试一下
没啥目标
头一篇这个环境搞的崩溃了,都是版本冲突,目前为止,我还未有解决firefox与selenium的版本冲突问题
这是一篇只讲chrome的文章
1、selenium下载最新版本,我在官网下载的
http://selenium-release.storage.googleapis.com/3.5/selenium-java-3.5.2.zip如果人品好,一般是下载得成功的
下载后解压
client-combined-3.5.2-nodeps-sources 是源代码,如果到时候在eclipse中查看源码的话,可以到时候再加进去咯
2、chrome浏览器与chromedriver的区别
浏览器不用说了,就是我们平常使用的,我这里没有特意讲版本,就是我以前安装过的
我是以v55来找chromedriver版本的
那么,chromedriver是什么呢?
ChromeDriver是Chromium team开发维护的,它是实现WebDriver有线协议的一个单独的服务。ChromeDriver通过chrome的自动代理框架控制浏览器
就是说它是chrome的一个插件,是为了webDriver调用时控制可以控制浏览器自动操作的一个东东了
那么要想让selenium成功的操作chrome浏览器,那么必须下载chromeDriver驱动包
这里问题就来了:
chrome浏览器版本与chromeDriver驱动包版本是要注意的,以下摘抄自网络,出处:http://blog.csdn.net/huilan_same/article/details/51896672
下载地址:http://chromedriver.storage.googleapis.com/index.html
我下载的是v2.28,下载地点是在CSDN,度娘一搜就有
3、最后一步代码,只是简单的调用test
package seleniumLearn1;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class Test {
public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver","E:\\webDriver\\chromedriverV2.28.exe");//chromedriver服务地址
WebDriver driver =new ChromeDriver(); //新建一个WebDriver 的对象,但是new 的是FirefoxDriver的驱动
driver.get("http://www.baidu.com");//打开指定的网站
driver.findElement(By.id("kw")).sendKeys(new String[] {"hello"});//找到kw元素的id,然后输入hello
driver.findElement(By.id("su")).click(); //点击按扭
try {
/**
* WebDriver自带了一个智能等待的方法。
dr.manage().timeouts().implicitlyWait(arg0, arg1);
Arg0:等待的时间长度,int 类型 ;
Arg1:等待时间的单位 TimeUnit.SECONDS 一般用秒作为单位。
*/
driver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
} catch (Exception e) {
e.printStackTrace();
}
/**
* dr.quit()和dr.close()都可以退出浏览器,简单的说一下两者的区别:第一个close,
* 如果打开了多个页面是关不干净的,它只关闭当前的一个页面。第二个quit,
* 是退出了所有Webdriver所有的窗口,退的非常干净,所以推荐使用quit最为一个case退出的方法。
*/
driver.quit();//退出浏览器
}
}
运行: