混合 WebDriver 和 RC 技术
来源:互联网 发布:贷款被大数据什么意思 编辑:程序博客网 时间:2024/06/09 15:50
WebDriver-Backed Selenium-RC
Java 版本的 WebDriver 提供了一套 Selenium-RC API 的实现。这意味着你可以使用 WebDriver 技术底层的 Selenium-RC API。这从根本上提供了向后兼容。这使得那些使用了 Selenium-RC API 的测试套件可以使用 WebDriver。这缓和了到 WebDriver 的迁移成本。同时,也允许你在同一个测试中使用两者的 API。
Selenium-WebDriver 的用法如下:
// 你可以使用任何 WebDriver 的实现,这里以 Firefox 的为例。WebDriver driver = new FirefoxDriver();// 基准 url,selenium 用于解析相对路径。 String baseUrl = "http://www.google.com";// 创建一个 Selenium 实现。Selenium selenium = new WebDriverBackedSelenium(driver, baseUrl);// 使用 selenium 进行一些操作。selenium.open("http://www.google.com");selenium.type("name=q", "cheese");selenium.click("name=btnG");// Get the underlying WebDriver implementation back. This will refer to the// same WebDriver instance as the "driver" variable above.WebDriver driverInstance = ((WebDriverBackedSelenium) selenium).getWrappedDriver();// 最后,通过调用 WebDriverBackedSelenium 实例的 stop 方法关闭浏览器。// 应该避免使用 quit 方法,因为这样,在浏览器关闭后 jvm 还会继续运行。selenium.stop();
优势
- 允许 WebDriver 和 Selenium API 并存。
- 提供了简单的机制从 Selenium RC API 迁移至 WebDriver。
- 不需要运行 Selenium RC server。
劣势
- 没有实现所有的方法。
- 一些高级用法可能无效(例如 Selenium Core 中的 “browserbot” 或其他内置的 js 方法)。
- 由于底层的实现,有些方法会比较慢。
Backing WebDriver with Selenium
WebDriver 支持的浏览器数量没有 Selenium RC 多,所以如果希望使用 WebDriver 时获得更多的浏览器支持,你可以使用 SeleneseCommandExecutor。
通过下面的代码,WebDriver 可以支持 safari(确保禁用弹出层):
DesiredCapabilities capabilities = new DesiredCapabilities();capabilities.setBrowserName("safari");CommandExecutor executor = new SeleneseCommandExecutor(new URL("http://localhost:4444/"), new URL("http://www.google.com/"), capabilities);WebDriver driver = new RemoteWebDriver(executor, capabilities);
这种方案有一些明显的限制,特别是 findElements 不会如预期工作。同时,我们使用了 Selenium Core 来驱动浏览器,所以你也会受到 JavaScript 的沙箱限制。
运行 Selenium Server 以使用 RemoteDrivers
从 Selenium 下载页面 下载 selenium-server-standalone-.jar,你也可以选择下载 IEDriverServer。如果你需要测试 chrome,则从 google code 下载它。
把 IEDriverServer 和 chromedriver 解压到某个路径,并确保这个路径在 $PATH / %PATH% 中,这样 Selenium Server 就可以不需要任何设置就能操作 IE 和 chrome。
从命令行启动服务:
java -jar <path_to>/selenium-server-standalone-<version>.jar
如果你希望使用本地事件功能,在命令行添加以下参数:
-Dwebdriver.enable.native.events=1
查看帮助:
java -jar <path_to>/selenium-server-standalone-<version>.jar -help
为了运转正常,以下端口应该允许 TCP 请求链接:4444, 7054-5(或两倍于你计划并发运行的实例数量)。在 Windows 中,你可能需要 unblock 这个应用。
- 混合 WebDriver 和 RC 技术
- 配置Selenium支持RC和Webdriver的混合模式
- rc与webdriver区别
- Webdriver 怎么backend用RC的方法
- 部署Selenium Grid + Selenium RC + Webdriver
- Selenium-Webdriver技术博客
- Selenium2的发布(RC与Webdriver的关系)
- Selenium - The architecture differences between Selenium RC and Selenium WebDriver
- APP,原生和H5开发技术混合开发
- selenium webdriver学习(十六)----------用selenium webdriver实现selenium RC中的类似的方法
- selenium webdriver学习(十六)----------用selenium webdriver实现selenium RC中的类似的方法
- WebDriver 命令和操作
- selenium和webdriver区别
- DirectX混合技术学习
- alpha混合技术
- alpha混合技术
- 混合视图技术--ContentNegotiatingViewResolver
- jsp页面技术混合
- nginx配置之正常运行配置
- ZOJ 3875 Lunch Time(水)
- 22个值得收藏的android开源代码-UI篇
- 支持lua脚本的串口调试助手
- [其他]@RunWith(TestClassRunner.class)报Class<TestClassRunner> cannot be resolved to a type
- 混合 WebDriver 和 RC 技术
- 【Unity技巧】Unity中的优化技术
- DD语句
- "libc.so.6: version `GLIBC_2.14' not found"
- 原码、反码和补码 再了解
- shell特殊变量$0,$#,$@,$*,$?,$$和命令行参数
- iOS中从零开始使用protobuf
- NSAttributedString的用法详解
- FMDB 使用方法