Ruby Webdriver ActionClass double_click 不工作

Ruby Webdriver ActionClass double_click Not Working

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

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

我有以下代码:

@article_zone = @driver.find_element(:id, "nbviewer-zone-overlay-13B27E79C7BC32F1").attribute("id")

哪个赋值@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 是我要双击的元素。我不知道为什么会收到此错误。

非常感谢任何帮助。感谢收看!

当你这样做时:

@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

问题是因为 double_click 默认情况下尝试点击元素的中间 。当我检查元素时,它的中间隐藏在 "fold" 下方。为了解决这个问题,我可以移动到具有偏移量的元素(从左上角开始)并执行双击:

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