【问题标题】:Selenium Error: 'Element not clickable at point' and element isn't scrollable into viewSelenium 错误:'元素不可点击'并且元素不可滚动到视图中
【发布时间】:2014-07-24 02:41:22
【问题描述】:

我已经在这里查看了该主题:Debugging "Element is not clickable at point" errorSelenium webdriver can't click on a link outside the page 这建议使用一些 javascript 滚动到元素。

我的问题可能只是浪费时间,因为我正在等待开发人员修复我无法滚动页面的这一部分这一事实的潜在错误。

在我的 selenium 测试运行期间,我尝试单击窗口区域外的一个元素(它无法滚动,这是我所知道的错误)。 我的问题是,对于 Selenium webdriver 测试,您是否只能单击可视区域中的元素而无法滚动到?

或者它几乎是失败的(这是正确的,因为错误)并且 selenium 完全与屏幕上可见的内容一起工作?

谢谢,希望有点清楚。

【问题讨论】:

  • 我相信 Selenium 旨在以用户的方式与网页交互,因此如果一个元素没有滚动到视图中,Selenium 将不会与之交互。如果你真的需要,你可能可以使用 javascriptExecutor 来点击它。
  • 即使是上面链接中的 JavaScriptExecutor 也不起作用(可能是因为你不能滚动页面的那部分。就像你说的那样,我相信它也是为了交互而设计的,但我在绝不是专家(第 4 天就玩了几个小时)。
  • 我不这么认为。我有几个脚本可以点击页面底部的链接,这些链接显然不在可视区域中
  • @Purus,当您运行它们时,是否会将它们滚动到可视区域然后单击?因为,就我而言,不可能将它们放在可视区域(开发代码中的一个错误)。因为我正在尝试滚动 JavaScriptExecutor 代码,但由于无法滚动,它仍然失败。
  • 是的。它会自动向下滚动到底部并单击所需的元素。顺便说一句,我使用 Firefox 和 IE 运行。您提供的链接说这是 Chrome 中的一个错误。请验证。

标签: selenium selenium-webdriver webdriver


【解决方案1】:

我曾经有一个组合框,我认为不需要扩展。我所做的是使用 Actions 构建器,因为 moveToElement() 函数会自动将对象滚动到视图中。然后就可以点击了。

WebElement element = panel.findElement(By.className("tabComboBoxButton"));

Actions builder = new Actions(this.driver);

builder.moveToElement(element);
builder.click();
builder.build().perform();

(面板只是我 POM 中的一个包装元素)

【讨论】:

    猜你喜欢
    • 2015-06-13
    • 1970-01-01
    • 2016-08-12
    • 1970-01-01
    • 2016-06-08
    • 2016-05-23
    • 2018-03-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多