selenium-------------------对于页面滚动条的处理

一、目前存在两种方式的滚动条,一种为window滚动条,另一种为非window滚动条。(针对这两种方式的滚动条编写的js脚本不同)
      一般滚动条存在页面的方式如下:

      例如:一种为:window滚动条,其存在页面中的样式为,例如百度页面上的滚动条,即为标准的window滚动条。

               另一种为:非window滚动条情况为:该滚动条存在div区域,在这个div区域上,可能存在一个frame、多个frame或没有frame。

二、处理方法需写js脚本如下:

      1、window滚动条的处理:

              i、滚动条滚动到顶部:

              ii、滚动条滚动到底部:document.documentElement.scrollTop=document.body.scrollTop =999999999;

                    或者window.scrollTo(0,document.body.scrollHeight);

              iii、滚动条滚动到中部:

                     htmlDom参数值为:document.documentElement.scrollTop=document.body

                     scrollHeight参数值为:document.body.scrollHeight

                     public static void scrollToCentre(String htmlDom,String scrollHeight){

                                JavascriptExecutor js = (JavascriptExecutor) (WebDriver) currentWindow.getDriver().getEngine();
                                Object scrollHeightValue = js.executeScript("return "+scrollHeight);
                                int scrollHeightIntValue = Integer.parseInt(String.valueOf(scrollHeightValue));
                               js.executeScript(htmlDom+".scrollTop="+scrollHeightIntValue/2);
                     }

              iv、滚动条滚动到特定位置:假如需要滚动到scrollLeft = 0,scrollTop = 100

                     js.executeScript(document.documentElement.scrollTop=document.body.scrollLeft=scrollLeft);

                    js.executeScript(document.documentElement.scrollTop=document.body.scrollTop=scrollTop);

        2、非window滚动条的处理:

              滚动条所处在页面情况描述:该滚动存在div区域,并且上面存在一个frame,那么js写法为:top['frameId'].document.getElementById( 'divId );

               如果该滚动条上面有多个frame,js写法为:top['name1']['name2']['name3'].document.getElementById( 'divId );

               滚动的到页面的位置与上述window的写法一致,例如:

               top['frameId'].document.getElementById( 'divId ).scrollTop=0;

                此处不再赘述。

                   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值