问题描述
我有一种方法可以检查平板电脑页面中是否存在滚动条。 这就是我的方法:
public void ifScrollbarispresent() {
String execScript = "return document.documentElement.scrollHeight>document.documentElement.clientHeight;";
JavascriptExecutor scrollBarPresent = (JavascriptExecutor) session.driver;
Boolean ifscrollbarpresent = (Boolean) (scrollBarPresent.executeScript(execScript));
if (ifscrollbarpresent == true) {
System.out.print("Scrollbar is present.");
} else if (ifscrollbarpresent == false){
System.out.print("Scrollbar is not present.");
}
}
我得到的错误是:
org.openqa.selenium.WebDriverException: Method is not implemented (WARNING: The server did not provide any stacktrace information)
这是我的以下appium日志:
[MJSONWP (b44cde9b)] Calling AppiumDriver.execute() with args: ["return document.documentElement.scrollHeight>document.documentElement.clientHeight;",[],"b44cde9b-bf58-4671-83bb-c169315c66ee"]
[MJSONWP (b44cde9b)] Encountered internal error running command: NotImplementedError: Method is not implemented
at AndroidDriver.extensions.execute (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-android-driver/lib/commands/execute.js:12:9)
有人可以建议出什么问题吗?谢谢:)
解决方法
删除return
并尝试:
String execScript = "document.documentElement.scrollHeight>document.documentElement.clientHeight;";
编辑1:
我的演示代码:
WebDriver driver = new ChromeDriver();
driver.get("https://github.com/");
String execScript = "return document.documentElement.scrollHeight>document.documentElement.clientHeight;";
JavascriptExecutor scrollBarPresent = (JavascriptExecutor) driver;
// Notice this
System.out.println(scrollBarPresent.executeScript(execScript).toString());
Boolean ifscrollbarpresent = (Boolean) (scrollBarPresent.executeScript(execScript));
if (ifscrollbarpresent == true) {
System.out.print("Scrollbar is present.");
} else if (ifscrollbarpresent == false) {
System.out.print("Scrollbar is not present.");
}
运行日志:
true
Scrollbar is present.