2.3 安装浏览器驱动
WebDriver 支持Firefox (FirefoxDriver)、IE (InternetExplorerDriver)、Opera (OperaDriver) 和Chrome(ChromeDriver)。
对Safari 的支持因为技术限制在本版本中未包含,可是可使用SeleneseCommandExecutor模拟。
还支持Android (AndroidDriver)和iPhone (IPhoneDriver) 的移动应用测试。
还包括一个基于HtmlUnit 的无界面实现,相关驱动为HtmlUnitDriver。
Selenium-WebDriver支持下面的浏览器,以及这些浏览其兼容的操做系统。
> Google Chrome 12.0.712.0+
> Internet Explorer 6, 7, 8, 9 - 32 and 64-bit
> Firefox 3.0, 3.5, 3.6, 4.0, 5.0, 6, 7
> Opera 11.5+
> HtmlUnit 2.9
> Android – 2.3+ 为移动电话和平板电脑(设备或模拟器)
> iOS 3+ 移动电话(设备或模拟器) 以及3.2+ 平板电脑(设备或模拟器)
安装Chrome 浏览器驱动,下载ChromeDriver_win64.zip(根据本身系统下载不一样的版本驱动),解压获得chromedriver.exe 文件放到系统环境变量Path 下面。
安装IE 浏览器驱动,下载IEDriverServer_Win32_x.xx.zip,将解压获得IEDriverServer.exe,一样放置到系统环境变量path 目录下。
在Liunx 系统下,一样下载系统对应的浏览器驱动,并将浏览器驱动放置到环境变量Path 所设置的路径下,不一样的Linux 环境变量的设置也会有所区别,这里再也不详细介绍。
安装完成后能够用IE 和chrome 来替换firefox 运行上面的例子。
import org.openqa.selenium.firefox.*;
....
WebDriver driver = new ChromeDriver();
....
替换为:
import org.openqa.selenium.chrome.*;
....
WebDriver driver = new ChromeDriver();
....
或
import org.openqa.selenium.ie.*;
....
WebDriver driver = new InternetExplorerDriver();
....
若是程序能调用相应的浏览器运行,说明咱们的浏览器驱动安装成功。
2.3补充说明:selenium+chromedriver安装及简单使用
解压后里面是一个exe文件,有两种选择:
1.每次使用手动增长路径:
1
2
3
|
#手动添加路径
path = "C:\Program Files (x86)\Google\Chrome\Application\chromedriver\chromedriver.exe"
driver = webdriver.Chrome(executable_path=path)
|
2. 添加环境变量path,增长chromedriver所在的目录
(个人电脑--右击属性--高级系统调设置--环境变量--path--把chromedriver.exe的路径添加上便可)
若是报错,考虑版本不对的问题,换个chromedriver.exe!!!
2.4 不一样编程语言下使用WebDriver
W3C(万维网联盟)对WebDriver 对作定义和规范。
WebDriver 是一个远程控制界面,支持检讨和用户代理的控制权。它提供了一个独立于系统平台和编程语言的线协议(wire protocol)做为一种远程进程程序指示web 浏览器的行为。
该WebDriver API 经过通信协议和一组接口来发现页面上的DOM 元素中定义的操做,包括控制浏览器的行为。
咱们能够这样来理解,例如,国标标准定义插板和插头的生产标准。那么全部的电器厂商生产的插头与全部插板厂商生产的插板都按照这套标准来设计与生产。因此,咱们拿到任何一个合格的插头和插板均可以匹配得上。
WebDriver 能够理解成对操做浏览器和页面元素的一套“国标”。那么不一样的编程语言均可以按照这套标准实现本身的语言的WebDriver库。
下面展现在不一样编程语言下使用WebDriver 实现百度搜索的例子。
在C#中引入Selenium WebDriver 实现自动化测试:
baidu.cs
//添加 Selenium(webdriver)的引用
using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;
using OpenQA.Selenium.Support.UI;
namespace SeleniumTests
{
class Baidu
{
static void Main(string[] args)
{
driver = new FirefoxDriver();
url = "http://www.baidu.com/";;
driver.Navigate().GoToUrl(url)
var searchBox = driver.FindElementById("kw");
searchBox.SendKeys("Selenium");
ar btnClick = driver.FindElementById("su");
btnClick.Click();
driver.Quit();
}
}
}
在Ruby 中引入Selenium WebDriver 实现自动化测试:
baidu.rb
#导入Selenium(webdriver)包
require 'Selenium-webdriver'
driver = Selenium::WebDriver.for:chrome
driver.get "http://www.baidu.com";
driver.find_element(:id, 'kw').send_keys "Hello WebDriver!"
driver.find_element(:id, 'su').click
driver.quit
在Python 中引入Selenium WebDriver 实现自动化测试:
baidu.py
#coding=utf-8
from selenium import webdriver
browser = webdriver.Firefox()
browser.get("http://www.baidu.com";)
browser.find_element_by_id("kw").send_keys("selenium")
browser.find_element_by_id("su").click()
browser.quit()
在不一样的编程语言中会有语法的差别,咱们抛去语法的差别性,在不一样的语言中实现百度搜索的自动化实例都完成了下面几个操做。
(1)首先导入Selenium(webdriver)相关模块。
(2)调用Selenium 的浏览器驱动,获取浏览器句柄(driver)并启动浏览器。
(3)经过句柄访问百度URL。
(4)经过句柄操做页面元素(百度输入框和按钮)。
(5)经过句柄关闭浏览器。
因此,WebDriver 支持多种编程语言,再确切的能够看做是多种语言都支持WebDriver,惟一的不一样在于不一样语言实现的类与方法名的命名差别性。固然,这样作的好处不言而喻,每一个人能够根据本身熟悉的语言来使用WebDriver 编写自动化测试脚本。