【发布时间】:2020-06-19 02:37:14
【问题描述】:
我体验到这种滚动到视图中的行为。通常,我使用 Actions 或 JavaScript 将元素滚动到视图中,如下所示:
Actions actions = new Actions(driver());
actions.moveToElement(element).build().perform();
或
js().executeScript("arguments[0].scrollIntoView();", element);
当元素超出视口时,它们都可以正常工作。但有时,我的元素已经在视口内,然后当它到达这些命令时,它实际上会将这些元素滚动到视图之外,并且测试失败,因为它不可点击。
有人遇到过同样的问题吗?有什么解决办法吗?
【问题讨论】:
-
您是否尝试过先找到元素然后滚动?使用: if(driver.findElements(By.xpath("value")).size() != 0){ System.out.println("Element is Present"); }else{ js().executeScript("arguments[0].scrollIntoView();", element); }
-
jse.executeScript("arguments[0].scrollIntoView(true);", element);呢? -
@Avataar17:嗨,if else 也没有帮助,因为元素总是在那里,只是不在视口中
-
@NarendraR:嗨,我试过了,当元素已经在视图中时,它仍然会将元素滚动到视图之外
标签: java selenium selenium-webdriver automation