WebDriver官方对其描述如下:
Webdriver (Selenium2)是一种用于Web应用程序的自动测试工具,它提供了一套友好的API,Webdriver完全就是一套类库,不依赖于任何测试框架,除了必要的浏览器驱动,不需要启动其他进程或安装其他程序,也不必像Selenium 1那样需要先启动服务。 Selenium 2则是通过原生浏览器支持或者浏览器扩展直接控制浏览器。
个人理解WebDriver作为自动化测试工具,可以直接通过浏览器对页面按照之前设置的程序进行操作,因为是完完全全原生浏览器的操作,所以我们人工可以完成的工作原则上WebDriver都可以帮助我们完成,这就是他强大的地方。
本文介绍如何搭建开发环境,以及我爬取的过程中常用的功能,具体的语法请关注Selenium2的中文教程网
二、搭建开发环境
WebDriver支持多种语言调用API,并且支持多种浏览器。这里我们就选择Java
注意的是,这里我们指的是Webdriver (Selenium2)
Webdriver (Selenium3)搭建开发环境会有不同。
WebDriver搭建需要三个东西配合
selenium的开发包
浏览器驱动
浏览器
这里最最最最最坑的是:这三个东西的版本必须相互匹配!!!!!
因为我一开始搭建的时候就是因为版本问题死活跑不起来,后来在高人的指点下,才终于找到一个都匹配的版本。
所以大家没有特殊需求建议搭建过程严格使用我这三个版本
2.1selenium的开发包
这里我们使用Maven的方式搭建,注意,我们选择的是Selenium2的版本
2.2浏览器驱动
Selenium2对于火狐浏览器是不需要驱动的,如果使用谷歌等浏览器就需要下载对应版本的驱动。
但是注意Selenium3对于火狐也是需要驱动的。
并且使用火狐会出现某些元素点击不了的BUG,所以在此建议使用谷歌浏览器
这里我们的驱动也使用谷歌浏览器
在代码中这样设置驱动
System.setProperty("webdriver.chrome.driver","D:\\work\\Webdriver\\chromedriver_x64.exe");
2.3浏览器版本
配合驱动的版本,浏览器只需要升级到最新版本就可以
我这里使用的是Google Chrome 版本 61.0.3163.100(正式版本)
如果你的浏览器不是安装在默认路径下,你还需要设置一下浏览器的路径
这样我们就搭建完成了开发环境,我们简单跑一个测试应用
我们让程序自动打开浏览器,然后百度Java
三、定位元素
在操作页面的时候,首先要做的就是定位页面上元素的位置。
定位的方式有很多,这里重点介绍3种
id
className
xpath
1.首先使用id是最准确的,速度也是最快的
2.使用className定位不一定准备,因为搜索到可能不止一个元素
3.xpath是辅助定位的利器,使用谷歌等浏览器非常方便的能获得元素的Xpath
在开发工具中像这样找到了这个元素之后,右键-copy-xpath就能获得该元素的xpath://*[@id=”kw”]
模拟点击主要有两种方式:WebDriver提供的API,JS方法操作,同时鼠标悬停等操作同理。
有时候使用API在网络状态不好的时候会比较慢,所以使用JS方法模拟点击会更加有效。
WebDriver对象可以转化为一个JS对象,然后使用JS的方法去执行点击操作
有时候我们想点击某个按钮,但是还没有加载出来我们就去点击会报错。
所以我们就需要等待这个按钮出现再点击。
一种比较笨的办法就是sleep一段时间,但是这种方法不具备通用性。
这里我们就需要使用WebDriver的智能等待了
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) | Powered by Discuz! X3.2 |