我正在尝试向下滚动列表中的某些元素。但这不适合我。
尝试以下代码。
JavascriptExecutor je = (JavascriptExecutor) driver;
je.executeScript("arguments[0].scrollIntoView(true);",elementToScroll);
以下是电子邮件模板下的组织设置中的图片,有一些可用的元素。所以我想点击我。但是直到它们没有出现在屏幕上我才能点击。 有人可以帮我解决这个问题吗?
答案 0 :(得分:0)
我有一种方法可以在屏幕中间查看任何元素。方法是
public void viewElementToCenter(WebElement ele){
String scrollElementIntoMiddle = "var viewPortHeight = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);"
+ "var elementTop = arguments[0].getBoundingClientRect().top;"
+ "window.scrollBy(0, elementTop-(viewPortHeight/2));";
((JavascriptExecutor) driver).executeScript(scrollElementIntoMiddle, ele);
//((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView(true);", ele);
try {
Thread.sleep(500);
} catch (InterruptedException e) {
}
}
调用此方法,如下所示
viewElementToCenter(elementToScroll);
然后点击该元素
elementToScroll.click();
答案 1 :(得分:0)
可能你可以尝试这个并获得运气:
JavascriptExecutor jse = (JavascriptExecutor) driver;
jse.executeScript("window.scrollBy(0,500)", "");
(0,500):增加像素大小以沿x轴(水平)向下滚动更多。
答案 2 :(得分:0)
您可以尝试以下代码..
((JavascriptExecutor)driver).executeScript("document.evaluate(xpathofelement_toclick, document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null).snapshotItem(0).scrollIntoViewIfNeeded();");