【问题标题】:How to Convert Selenium-Webdriver objects to Watir-Webdriver如何将 Selenium-Webdriver 对象转换为 Watir-Webdriver
【发布时间】:2014-10-02 00:29:53
【问题描述】:

我想在 Watir webdriver 中使用 selenium webdriver Actions。可以吗? 也可以在 watir webdriver 中使用 java 代码。请帮助。 我浏览了许多论坛,并从http://jkotests.wordpress.com/2014/09/04/convert-selenium-webdriver-objects-to-watir-webdriver/,regarding 获得了一些关于 Selenium 在 watir 中的使用的知识。感谢 Justin KO 的帖子。

【问题讨论】:

  • 嗨 Justin 感谢您的评论,是的,可以在 watir 中使用 ActionBuilder 吗?请帮忙。

标签: watir-webdriver


【解决方案1】:

您可以通过直接与 Watir 浏览器的底层 Selenium 驱动程序交互来访问 ActionBuilder:

browser.driver.action
#=> Selenium::WebDriver::ActionBuilder

许多操作方法都需要 Selenium 元素作为参数。您可以使用 Watir 定位元素,然后获取底层的 Selenium 元素。例如:

element = browser.div
element.wd
#=> Selenium::WebDriver::Element

将它们放在一起,您可以执行如下操作:

watir_element = browser.div
browser.driver.action
  .key_down(:shift)
  .click(watir_element.wd)
  .key_up(:shift)
  .perform

【讨论】:

  • 嗨,贾斯汀,我只是按照您的步骤操作并尝试使用下面的代码双击。它在 chrome 浏览器中运行良好,但在 Firefox 浏览器中无法运行。用于双击的代码:n=browser.iframe(:id,"iframeResult").button(:ondblclick,"myFunction()") browser.driver.action.double_click(n.wd).perform Firefox 中的错误:irb (main):007:0> browser.driver.action.double_click(n.wd).perform Selenium::WebDriver::Error::InvalidElementStateError: 无法执行原生交互:无法加载原生事件组件。
  • 来自 [远程服务器] file:///C:/Users/Niresh/AppData/Local/Temp/webdriver-profile20141004-4364-mo5o3r/extensions/fxdriver@googlecode.com/components/driver_component .j s:9209:3:in generateErrorForNativeEvents' from [remote server] file:///C:/Users/Niresh/AppData/Local/Temp/webdriver-profile20141004-4364-mo5o3r/extensions/fxdriver@googlecode.com/components/driver_component.j s:9253:9:in FirefoxDriver.prototype.mouseMoveTo' 来自 [远程服务器] file:///C:/Users/Niresh/AppData/Local/Temp/webdriver-profile20141004-4364-mo5o3r/extensions/ fxdriver@googlecode.com/components/command_
  • 来自[远程服务器] file:///C:/Users/Niresh/AppData/Local/Temp/webdriver-profile20141004-4364-mo5o3r/extensions/fxdriver@googlecode.com/components/command_processor . js:10889:7:in DelayedCommand.prototype.executeInternal_' from [remote server] file:///C:/Users/Niresh/AppData/Local/Temp/webdriver-profile20141004-4364-mo5o3r/extensions/fxdriver@googlecode.com/components/command_processor. js:10831:5:in DelayedCommand.prototype.execute/
  • Watir-WebDriver 有一个双击的方法——例如browser.button.double_click。如果您遇到本机事件的问题(异常说明),通常是您的 Selenium-WebDriver 版本不支持您的 Firefox 版本。 Selenium-WebDriver 2.41.0,看起来你正在使用,只支持 Firefox 28 之前的原生事件。假设你使用的是更新版本的 Firefox,你需要更新 Selenium-WebDriver。
  • 感谢您的 double_click 方法。它在 chrome 中运行良好。我已将 selenium webdriver 更新为 2.43.0。注意到以下错误。还尝试了 double_click 方法。注意到与以下相同的错误消息。唯一的区别是来自 C:/Ruby193/lib/ruby/gems/1.9.1/gems /watir-webdriver-0.6.11/lib/watir-webdriver/elements/element.rb:150:in `double_click' 被添加到下面错误信息的最后一行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-04-01
  • 2013-08-10
  • 2015-02-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多