【发布时间】:2019-07-07 22:26:25
【问题描述】:
我尝试了几种向表格添加滚动的方法,但只有其中一种可以正常工作。它们有什么不同?
第一:
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("arguments[0].scrollIntoView();", Element);
第二:
WebElement element1 = driver.findElement(By.id("scrolled_element"));
((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView(true);", element1);
第三:
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("window.scrollBy(0,1000)");
第四:
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("window.scrollTo(0, document.body.scrollHeight)");
【问题讨论】:
-
您是否尝试过在谷歌上搜索每种方法的文档?
-
当然,第一个和第二个假设移动到元素,-我只是不知道语法不同,为什么在相同的情况下(表)只有第一个有效。据我所知,第三个是按像素移动,第四个我不明白。还有更多吗?
-
嗯,第一个示例中的
Element对象是如何得到的?根据文档,在scrollIntoView(true)中包含true应该不会产生影响,因为默认情况下true用于scrollIntoView()。 -
scrollTo(x,y)会按照它的建议进行操作 - 即滚动到您提供的坐标。这意味着.scrollTo(1,1)将导致1,1的像素位置位于视口的左上角。 -
关于第一个示例,您之前运行过:
WebElement Element = driver.findElement(By.linkText("blaBla"));,我不知道它为什么有效,但只有第一个有效,奇怪但真实。 scrollTo 没有列出,所以我们有五个?或者共有哪些选项?
标签: javascript selenium js-scrollintoview js-scrollby js-scrollto