【问题标题】:Selenium verify that div has a scrollbarSelenium 验证 div 是否有滚动条
【发布时间】:2018-07-10 17:53:08
【问题描述】:

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

<div class="checkout-mini-cart">

代码:

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

它总是返回 false,因为 "return div.scrollHeight;"返回空值。怎么做才是正确的?

【问题讨论】:

    标签: javascript java selenium


    【解决方案1】:

    代码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);
    

    或通过阅读属性:

    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;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多