Ruby Webdriver ActionClass double_click Not Working

时间:2017-04-12 15:30:53

标签: ruby selenium webdriver double-click

我找到了一个类似的主题here并按照示例进行了操作,但解决方案似乎无效。

我正在尝试使用找到的here文档双击元素。

我有以下代码:

@article_zone = "nbviewer-zone-overlay-13B27E79C7BC32F1"

指定@driver.action.double_click("id=" + @article_zone).perform

然后我有下一行代码:

Error: TypeError: expected Selenium::WebDriver::Element, got "id=nbviewer-zone-overlay-13B27E79C7BC32F1":String

但这一行引发了以下错误: id=nbviewer-zone-overlay-13B27E79C7BC32F1

元素//Nav Items $navItems = array( array( slug => "index.php", title => "Home" ), array( slug => "cruise-partners.php", title => "Cruise Partners" ), array( slug => "destinations.php", title => "Destinations" ), array( slug => "cruise-deals.php", title => "Cruise Deals" ), array( slug => "cruise-type.php", title => "Cruise Type" ), array( slug => "river-cruise.php", title => "River Cruise" ), array( slug => "luxury.php", title => "Luxury" ), array( slug => "contact.php", title => "Contacts" ) ); ?> 是我试图双击的内容。我不知道为什么我收到这个错误。

非常感谢任何帮助。谢谢你的期待!

2 个答案:

答案 0 :(得分:0)

执行此操作时:

@driver.action.double_click("id=" + @article_zone).perform

您在+的实例上调用String方法。这将尝试将@article_zone隐式转换为字符串并将其附加到"id="。然后将该字符串传递给double_click方法,该方法期望Selenium::WebDriver::Element的实例。

我怀疑如果你删除"id=" +,你就可以了:

@driver.action.double_click(@article_zone).perform

答案 1 :(得分:0)

问题是因为double_click 默认情况下会尝试点击元素的中间。当我检查元素时,它的中间隐藏在“折叠”下方。为了解决这个问题,我可以使用偏移(从左上角)移动到元素并执行双击:

@driver.action.move_to(@article, 10, 10).double_click.perform