自动化测试学习(九) WebDirver2014-08-23关于什么是WebDirver,上一节做了简单的描述,环境也在上一章中搭建完成。下面我们拷贝了官网提供的一个实例。让其在我们的eclipse中运行。Selenium WebDirver 代码如下:
package MySel20Proj;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.WebElement;import org.openqa.selenium.firefox.FirefoxDriver;import org.openqa.selenium.htmlunit.HtmlUnitDriver;import org.openqa.selenium.support.ui.ExpectedCondition;import org.openqa.selenium.support.ui.WebDriverWait;public class Selenium2Example{public static void main(String[] args) {// 用Firefox driver创建一个新的的实例//注意:其他的代码依赖于界面//不执行System.setProperty ( "webdriver.firefox.bin" , "E:/Program Files/Mozilla Firefox/firefox.exe" );WebDriver driver = new FirefoxDriver();// 这里我们可以使用firefox来运行测试用例//WebDriver driver = new ChromeDriver(); //这是chrome浏览器的驱动//WebDriver driver = new InternetExplorerDriver(); //这是IE浏览器的驱动 // WebDriver driver = new HtmlUnitDriver(); //这是一个无界面测试模式,不用打开浏览器,通过后台输入来判断测试用例是否通过// 现在用这个来访问谷歌driver.get("http://www.google.com");// 也可以用下面的方式访问谷歌// driver.navigate().to("http://www.google.com");// 找到文本输入元件的名字WebElement element = driver.findElement(By.name("q"));// 在搜索框内输入“cheese!”element.sendKeys("Cheese!");// 现在递交表格. WebDriver会发现我们的形式元素element.submit();// 后台打印输出,检查网页的标题System.out.println("Page title is: " + driver.getTitle());// 谷歌的搜索是渲染过的动态JavaScript. 等待页面加载,暂停10秒(new WebDriverWait(driver, 10)).until(new ExpectedCondition<Boolean>() {public Boolean apply(WebDriver d) {return d.getTitle().toLowerCase().startsWith("cheese!");}});// Should see: "cheese! - Google Search"System.out.println("Page title is: " + driver.getTitle());//关闭浏览器driver.quit();}}
运行时报出了错误;Exception in thread "main" org.openqa.selenium.WebDriverException: Cannot find firefox binary in PATH. Make sure firefox is installed. OS appears to be: XPBuild info: version: "2.16.1", revision: "15405", time: "2012-01-05 12:30:12"我们只要在WebDriver driver = new FirefoxDriver(); 前面指定我们浏览器的具体信息即可:System.setProperty ( "webdriver.firefox.bin" , "E:/Program Files/Mozilla Firefox/firefox.exe" );WebDriver driver = new FirefoxDriver();WebDirver 的实现:
驱动名称 | 对操作系统的支持 | 调用的接口 |
FireFox Driver | ALL | org.openqa.selenium.firefox.FirefoxDriver |
Chrome Driver | ALL | org.openqa.selenium.chrome.ChromeDriver |
InternetExplorer Driver | Windows | org.openqa.selenium.ie.InternetExplorerDriver |
HtmlUnit Driver | ALL | org.openqa.selenium.htmlunit.HtmlUnitDriver |