是否可以设置要滚动的元素的坐标?

时间:2018-11-17 12:49:47

标签: java selenium

我使用一种方法来滚动到页面上的某些元素。

protected static void scrollIntoView(WebElement element) {
        Main.s_driver.executeScript("arguments[0].scrollIntoView(true);", element);
    }

但是由于某些原因,某些元素滚动到顶部,有些滚动到底部。因此,我得到了例外。 See the image example 我希望它总是(或至少要控制它)像左图所示。是否可以设置要滚动到的坐标(顶部)?

1 个答案:

答案 0 :(得分:0)

您可以使用通常的滚动方法,因为使用时总是要添加一些额外的像素,以使元素至少可点击。

driver.executeScript("window.scrollBy(0, -10);"); // scroll 10px higher

不太方便,但是对我有用。

如果需要使元素整体可见,请使此方法更具体,例如:

protected static void scrollIntoView(WebElement element, int pixelsToAddVer) {
        driver.executeScript("arguments[0].scrollIntoView(true);", element);
        driver.executeScript("window.scrollBy(0, " + pixelsToAddVer + ");");
    }

不幸的是,您仍然需要计算像素。