如何在Selenium Java中检查滚动条是否可滚动?

时间:2018-10-04 05:41:06

标签: java selenium

我必须检查水平滚动条是否可滚动。我尝试通过检查是否显示来显示元素是否在水平滚动后出现 Javascript scrollIntoView,但如何确保滚动条正常工作。

因为滚动条位置没有改变scrollIntoView,所以仅滚动元素并按照屏幕上显示的进行操作。但是滚动条不能滚动。

2 个答案:

答案 0 :(得分:0)

尝试以下选项以水平滚动:

declaration

答案 1 :(得分:0)

这个想法很简单-首先,尝试将滚动条移动到任一侧,然后检查滚动条是否已真正移动。

//scrol 1px to the left
$(document).scrollLeft(1);

if($(document).scrollLeft() != 0){
   //there's a scroll bar
}else{
   //there's no scrollbar
}
//scroll back to original location
$(document).scrollLeft(0);

让我们将其转换为Java方法并在脚本中使用它。

    /**
     * 
     * @param js reference to JavascriptExecutor
     * @param element is a string of locator (i.e. #scroll > span etc.)
     * @return true if scrollbar is scrollable
     */
    boolean testScrollBar(JavascriptExecutor js, String element){
        String jq = String.format("return $('%s').scrollLeft()", element);
        String jq1 = String.format("$('%s').scrollLeft(1)", element);
        String jq2 = String.format("$('%s').scrollLeft(0)", element);

        System.err.println("Test1: "+js.executeScript(jq));

        js.executeScript(jq1);

        Long currentPos =  (Long)js.executeScript(jq);

        System.err.println("Test2: " + currentPos);

        js.executeScript(jq2);

        return currentPos != 0;
    }

希望对您有帮助。