我只能说因为版本冲突,简直太折腾了,而搜了无数个博友的帖子才找到正确条案,就不能好好的写篇文章吗?
最近真的是太闲太闲了,平时没事总得搞点技术,不然心里感觉好空虚,
最近看上了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();//退出浏览器 } }
运行: