[align=left][size=large] [align=left][size=large][size=large] selenium webdriver
1、什么情况下选用WebDriver?
(1)Selenium-1.0不支持的[size=medium][/size][align=left]
浏览器功能。
(2)multiple frames, multiple browser windows, popups, and alerts.
(3)页面导航。
(4)下拉。
(5)基于AJAX的UI元素。
2、WebDriver的几个实现:
Name of driver Available on which OS? Class to instantiate
HtmlUnit Driver All org.openqa.selenium.htmlunit.HtmlUnitDriver
Firefox Driver All org.openqa.selenium.firefox.FirefoxDriver
Internet Explorer Driver Windows org.openqa.selenium.ie.InternetExplorerDriver
Chrome Driver All org.openqa.selenium.chrome.ChromeDriver
(1)HtmlUnit Driver是纯java的驱动器,全部在内存中运行,不会实际打开浏览器,但其速度很快。
(2)Firefox Driver:速度慢。
3、WebDriver常用的函数接口(以HtmlUnitDriver为例)
WebDriver driver = new HtmlUnitDriver();
(1)页面导航:
driver.get( "http://www.google.com" ); 完全装载页面后将控制返回给测试脚本。
注意:当页面又很多AJAX调用时,该接口无法确认页面是否完全装载,这是需要使用"waits"。
(2)与页面交互
例如:<input type= "text" name= "passwd" id= "passwd-id" />
WebElement element;
element = driver.findElement(By.id( "passwd-id" ));
element = driver.findElement(By.name( "passwd" ));
element = driver.findElement(By.xpath( "//input[@id=’passwd-id’]" ));
(XPATH返回第一个匹配到的元素,如果没有匹配到,抛出NoSuchElementException)
element.sendKeys( "some text" );
element.sendKeys( " and some" , Keys.ARROW_DOWN); (按向下箭头)
(任何页面元素都可以调用sendKeys,例如可以测试一些快捷方式键,键盘的每次输入都是附加在文本串的后面)
element.clear(); 清除文本域内容
4、填写表单
(1)处理SELECT标签:
WebElement select = driver.findElement(By.xpath( "//select" ));
List<WebElement> allOptions = select.findElements(By.tagName( "option" ));
for (WebElement option : allOptions) {
System.out.println(String.format( "Value is: %s" , option.getValue()));
option.setSelected();
}
(2)使用Select类处理SELECT标签:
Select select = new Select(driver.findElement(By.xpath( "//select" )));
select.deselectAll();
select.selectByVisibleText( "Edam" );
5、提交:
(1)driver.findElement(By.id( "submit" )).click();
(2)element.submit();(要求element必须在表单中,否则抛出NoSuchElementException)
6、检查元素是否在页面上(并且可以获取元素的尺寸和位置,拖拉元素):
WebElement plain = driver.findElement(By.name( "q" ));
RenderedWebElement element = (RenderedWebElement) element;(例如HtmlUnit Driver就无法显示出内容)
对元素拖拉:
RenderedWebElement element = (RenderedWebElement) driver.findElement(By.name( "source" ));
RenderedWebElement target = (RenderedWebElement) driver.findElement(By.name( "target" ));
element.dragAndDropOn(target);
7、在窗口和frame之间移动
(1)在命名的窗口之间移动:switchTo
driver.switchTo().window( "windowName" ); (可以通过js或者打开窗口的链接获取窗口名称)
(2)也可通过窗口句柄切换:
for (String handle : driver.getWindowHandles()) {
driver.switchTo().window(handle);
}
(3)frame之间切换或者切换到iframe:
driver.switchTo().frame( "frameName" );
通过索引访问subframe:
driver.switchTo().frame( "frameName.0.child" );(frameName的第一个subframe的明价child的frame)
8、弹出对话框:
窗口弹出后,可以使用如下语句访问到弹出窗口:
Alert alert = driver.switchTo().alert();
获取到alert窗口后,可进行各种操作。
9、页面导航:
navigate().to()和get()功能完全一样。
driver.navigate().to( "http://www.example.com" );
浏览器的前进和后退
driver.navigate().forward();
driver.navigate().back();
(注意这两个方法取决于浏览器的实现,可以会出现某些调用失败)
10、Cookies(必须首先在目标url域上)
// Go to the correct domain
driver.get( "http://www.example.com" );
// Now set the cookie. This one’s valid for the entire domain
Cookie cookie = new Cookie( "key" , "value" );
driver.manage().addCookie(cookie);
// And now output all the available cookies for the current URL
Set<Cookie> allCookies = driver.manage().getCookies();
for (Cookie loadedCookie : allCookies) {
System.out.println(String.format( "%s -> %s" , loadedCookie.getName(), loadedCookie.getValue()));
}
12、WebDriver支持的浏览器不如Selenium RC多:
为了支持更多的浏览器并且使用WebDriver API,可以使用SeleneseCommandExecutor
Capabilities capabilities = new DesiredCapabilities()
capabilities.setBrowserName( "safari" );
CommandExecutor executor = new SeleneseCommandExecutor( "http:localhost:4444/" , "http://WebDriver driver = new RemoteWebDriver(executor, capabilities);
这种方法的限制条件:目前findElements方法不能使用,并且首先js沙盒。[/size][/align][/size][/align][/size][/align]
分享到:
相关推荐
本书是一本从入门到精通模式的Selenium WebDriver实战经验分享书籍。全书共分为四个部分:第1部分基础篇主要讲解自动化测试相关的基础理论、WebDriver 环境安装、单元测试工具的使用方法以及 WebDrvier的入门使用...
Selenium WebDriver 是一款广泛使用的自动化测试工具,专为Web应用程序设计。它允许程序员模拟真实用户在浏览器中的操作,如点击、输入、导航等,从而进行功能性和兼容性测试。了解其工作原理对于优化自动化测试脚本...
【标题】"selenium webdriver+chrome插件.zip" 涉及的核心知识点是Selenium WebDriver,特别是它在Chrome浏览器中的应用以及与Firefox的交互。这个压缩包包含了Selenium IDE的Chrome插件,以及对应的WebDriver驱动...
Selenium WebDriver是一款强大的自动化测试工具,它允许程序员模拟真实用户在浏览器上的操作,进行Web应用程序的功能测试和验收测试。在Java环境下,Selenium WebDriver通常需要引入相应的jar包才能正常工作。...
Python + Selenium WebDriver 学习借鉴 Python 是一种广泛使用的编程语言,Selenium 是一个自动化测试工具,WebDriver 是 Selenium 的一个组件,用于自动化浏览器操作。在本文档中,我们将学习如何使用 Python 和 ...
selenium webdriver是web自动化的一本经典著作,吴老集合python java不同版本。本资源为java版本,内容较新,无论是入门还是提升都有很大帮助。
**Selenium WebDriver** 是一个广泛使用的自动化测试工具,主要用于网页应用程序的测试。它模拟了真实用户的浏览器行为,允许测试人员编写脚本来控制浏览器执行各种操作,如点击按钮、填写表单、导航等。WebDriver ...
### selenium webdriver基于python源码案例 #### 一、Selenium简介与环境搭建 **1.1 Selenium概述** Selenium是一个强大的工具集,主要用于自动化Web应用的测试。它支持多种编程语言,如Java、C#、Python等,并能...
Selenium WebDriver是自动化测试领域的一款强大工具,尤其在Web应用测试方面表现卓越。它通过模拟用户行为与浏览器进行交互,从而实现对网页的自动化控制。《Selenium WebDriver(Python)第三版》这本书深入浅出地...
《Selenium WebDriver基于Python源码案例》是一份专为初学者设计的教程,旨在通过实践案例帮助用户快速掌握Selenium WebDriver与Python的结合使用。这个压缩包中的资源,特别是`.epub`格式的电子书,提供了丰富的...
Selenium WebDriver 3 Practical Guide will walk you through the various APIs of Selenium WebDriver, which are used in automation tests, followed by a discussion of the various WebDriver implementations...
根据给定文件信息,标题为“Selenium WebDriver Practical Guide”,描述提及这是2014年出版的、关于Selenium的实用指南,非常适合想要深入学习该领域的人。虽然部分内容中包含了一些OCR扫描文字的识别错误,但还是...
Selenium WebDriver 中使用 By.Xpath 快速定位页面元素 Selenium WebDriver 是一个自动化测试工具,可以模拟用户交互来对 Web 应用程序进行测试。其中,定位页面元素是自动化测试的关键步骤。By.Xpath 是一种快速...
**Selenium Webdriver** Selenium Webdriver 是一个广泛使用的开源自动化测试框架,专门设计用于测试Web应用程序。它允许程序员模拟真实用户与浏览器的交互,包括点击、输入文本、导航等操作,从而实现对Web应用的...
自动化测试:Selenium webdriver学习笔记 C#版 在本篇笔记中,我们将讨论 Selenium webdriver 的自动化测试中的对象定位方法。对象定位是自动化测试中非常重要的一步骤,它决定了我们的测试脚本是否能够正确地找到...
Selenium WebDriver 是一款强大的自动化测试工具,用于模拟真实用户在浏览器上的交互行为。其工作原理主要涉及自动化测试代码、浏览器驱动和浏览器这三个关键组件。我们可以将这个过程类比为出租车服务,其中工程师...
Selenium WebDriver 3.14.0 本来需要.net45 我改为.net2.0 希望喜欢的人需要。 dll 反编译,嵌入程序内。无需调用那个讨厌的dll。 绝对不骗人,骗人是小狗。架构复杂修改麻烦,各位体谅