【问题标题】:wierd behavior on Scrolling selenium滚动硒的奇怪行为
【发布时间】:2015-04-14 03:04:40
【问题描述】:

我正在研究 UI 自动化,最近发现了一种有趣的行为。 有时我需要滚动到某个特定元素,我一直在使用 JS 函数滚动到元素和 actions.moveToElement(WebElement)

这似乎适用于任何复选框、文本框、按钮类型的元素,但是当我需要移动到具有多列的表格的表格单元格 () 时 - 看到表格正在向左移动,就会发生这种情况几乎每次。假设有一个 5x5 的表,当我通过这两个函数中的任何一个执行 scroll2element 时,我只循环第 5 列 - 整个表都搞砸了。之前的所有列都会消失,我的第 5 列一直向左移动。

我找到了解决方法 - 我没有滚动到特定的表格单元格,而是滚动到位于该表格顶部的按钮,但出于好奇,如果有人遇到这样的问题,他们做了什么?谢谢

【问题讨论】:

  • 您遇到的问题可能是由多种原因引起的。这可能是您正在使用的页面的 JavaScript 中的错误(您已经使用解决方案解决了该错误)。可能是您没有做您认为您正在使用您的 Selenium 脚本所做的事情。这将是一个时间问题(不等待正确的事件)。
  • 一般情况下,我在创建驱动程序实例时将窗口设置为最大化。它似乎解决了很多此类滚动问题。
  • 好的,所以我的窗口最大化了,当我滚动到元素时,我通过 wait.until(ExpectedConditions.visibilityOfElement(By..) 找到这个元素所以我非常确定它应该没问题,即使我在驱动程序找到元素后添加一些thread.sleep,当我滚动到它时,我也会看到这个问题。这就是js函数:WebElement x =wait.until(ExpectedConditions.visibilityOfElementLocated(by));( (JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView();", x); action.moovetoelement 也是如此。你是说我的项目中的 JS 有错误吗?
  • @Gino 如果没有看到您的脚本和您尝试处理的页面,就无法判断。否则,我们只是猜测。

标签: java javascript selenium scroll ui-automation


【解决方案1】:

我认为您的问题可能出在选择器上。

尝试在 XPath 上使用 CSS 选择器,根据我的生活经验,XPath 不如 CSS 好用。

另外,我一直在使用 JS,从来没有遇到过任何问题。

试试看

   WebElement x = driver.findElement(by);
        ((JavascriptExecutor) driver).executeScript(
                "arguments[0].scrollIntoView();", x);

【讨论】:

    猜你喜欢
    • 2016-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多