硒验证div是否具有滚动条

Ale*_*oke 5 javascript java selenium

我正在尝试验证特定的div是否具有滚动条,如何使用Selenium?元件:

<div class="checkout-mini-cart">
Run Code Online (Sandbox Code Playgroud)

码:

JavascriptExecutor jsExecutor = (JavascriptExecutor)webDriver;
String script = "var div = document.getElementsByClassName('.checkout-mini-cart');" +
                "return div.scrollHeight < div.clientHeight;";
Object isScrollable = jsExecutor.executeScript(script);
Run Code Online (Sandbox Code Playgroud)

它总是返回false,因为“ return div.scrollHeight;”。返回null。如何以正确的方式做到这一点?

Flo*_* B. 5

该代码document.getElementsByClassName返回一个数组,而不是DOM元素。

要使用脚本注入检查元素是否可滚动:

String JS_ELEMENT_IS_SCROLLABLE = 
    "return arguments[0].scrollHeight > arguments[0].offsetHeight;";

JavascriptExecutor jse = (JavascriptExecutor)webDriver;

WebElement container = driver.findElement(By.cssSelector(".checkout-mini-cart"));
Boolean isScrollable = (Boolean)jse.executeScript(JS_ELEMENT_IS_SCROLLABLE, container);
Run Code Online (Sandbox Code Playgroud)

或通过阅读属性:

WebElement container = driver.findElement(By.cssSelector(".checkout-mini-cart"));
int scrollHeight = parseInt(container.getAttribute("scrollHeight"));
int offsetHeight = parseInt(container.getAttribute("offsetHeight"));
Boolean isScrollable = scrollHeight> offsetHeight;
Run Code Online (Sandbox Code Playgroud)