2014-09-30 29 views
1

我想使用selenium webdriver在Watir webdriver中执行操作。是否有可能? 也可以在watir webdriver中使用java代码。请帮助。 我经历了很多论坛,并从http://jkotests.wordpress.com/2014/09/04/convert-selenium-webdriver-objects-to-watir-webdriver/,regarding了解了硒在watir中的用法。感谢贾斯汀KO的职位。如何将Selenium-Webdriver对象转换为Watir-Webdriver

+0

嗨贾斯汀感谢您的评论,肯定是有可能在的Watir使用ActionBuilder?请帮忙。 – Karish 2014-10-01 08:44:10

回答

1

您可以通过使用浏览器的Watir的基础硒驾驶员直接交互访问ActionBuilder:

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

许多动作方法需要一个硒​​元素作为参数。您可以使用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 
+0

谢谢Justin.You awseome.It工作正常。 – Karish 2014-10-03 18:16:44

+0

嗨贾斯汀我只是按照你的步骤,并尝试使用下面的代码双击。它在Chrome浏览器中工作正常,但它不工作在Firefox浏览器。 用于双击的代码: n = browser.iframe(:id,“iframeResult”)。button(:ondblclick,“myFunction()”) browser.driver.action.double_click(n.wd).perform Error在Firefox中: irb(main):007:0> browser.driver.action.double_click(n.wd).perform Selenium :: WebDriver :: Error :: InvalidElementStateError:无法执行本机交互:无法加载本机事件组件。 – Karish 2014-10-03 18:56:35

+0

from [remote server] file:/// C:/Users/Niresh/AppData/Local/Temp/webdriver-profile20141004-4364-mo5o3r/extensions/[email protected]/components/driver_component.j s:9209: 3:在[remote server] file:/// C:/Users/Niresh/AppData/Local/Temp/webdriver-profile20141004-4364-mo5o3r/extensions/[email protected]/components/driver_component的'generateErrorForNativeEvents' 中。 j s:9253:9:从[远程服务器]文件中的'FirefoxDriver.prototype.mouseMoveTo' file:/// C:/ Users/Niresh/AppData/Local/Temp/webdriver-profile20141004-4364-mo5o3r/extensions/[email protected]/components/command_ – Karish 2014-10-03 18:57:48