【问题标题】:Hover in Selenium does not work在 Selenium 中悬停不起作用
【发布时间】:2018-02-28 09:56:55
【问题描述】:

这不是真正的问题,只是分享我的经验。 我正在测试一个包含图表的页面。每当鼠标悬停动作完成时,它旁边都会显示一个小提示。这项工作完美地手动与元素交互。尝试将鼠标悬停在 Selenium 的元素上时会出现问题。

我用下面的代码测试了一下,还是不行

new Actions(getDriver()).moveToElement(graphElement).build().perform();

只有在使用 Actions 之前执行以下代码时才有效

graphElement.click();

即使 Actions 的 click() 方法不起作用。确实需要通过WebElement.click()点击,然后使用Actions...

有没有人对这种行为有类似的经历?为什么要在动作起作用之前点击元素? 因为它与潮流相反。为什么有人会从单击元素开始检查悬停操作时是否显示某些消息?

JS 解决方法(悬停)也无济于事。

感谢您的帖子。

【问题讨论】:

  • 尝试:Actions(getDriver()).moveToElement(graphElement).build().perform();
  • 可能跟当前的焦点有关。我不知道您尝试了什么,但您可能需要先确保元素或父元素已聚焦,然后才能执行悬停/单击操作。
  • 请用相关的HTML更新问题。
  • Deepan: ..build().perform().. 无法正常工作。 Chuk Ultima:你认为专注于父
    才能专注于嵌套的孩子吗?那么为什么 WebElement.click() 会起作用呢?
  • 发现Actions在这种情况下是没用的。如果我单击元素然后再次单击,它会保持焦点,因此会执行悬停。我试图专注于父子父等,但没有成功。如果我想查看页面源代码,我看到 html 代码是不同的。这意味着代码可能是由 JS 动态生成的。我被搞砸了。

标签: selenium


【解决方案1】:

我刚刚搜索并找到了非常简洁的解决方案。 使用下面的代码解决了这个问题。

graphElement.sendKeys("");

最终版本

graphElement.sendKeys("");
new Actions(getDriver()).moveToElement(graphElement).build().perform();

【讨论】:

    猜你喜欢
    相关资源
    最近更新 更多
    热门标签