我使用一种方法来滚动到页面上的某些元素。
protected static void scrollIntoView(WebElement element) {
Main.s_driver.executeScript("arguments[0].scrollIntoView(true);", element);
}
但是由于某些原因,某些元素滚动到顶部,有些滚动到底部。因此,我得到了例外。 See the image example 我希望它总是(或至少要控制它)像左图所示。是否可以设置要滚动到的坐标(顶部)?
答案 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 + ");");
}
不幸的是,您仍然需要计算像素。