美文网首页过程测试开发我爱编程
selenium_通过selenium控制浏览器滚动条

selenium_通过selenium控制浏览器滚动条

作者: 古佛青灯度流年 | 来源:发表于2016-08-01 18:04 被阅读5516次
    • 控制滚动条这个事情难为了我好久,查了无数篇文章,基本千篇一律,全是一个方法,但是在我这里就是没能成功,最无助之时求助二哥,简单讲明selenium控制浏览器滚动条原理后,2分钟就给我找到解决方法了,佩服的五体投地啊!

    • 先说一下我的解决方法吧

    目的:通过selenium控制浏览器滚动条
    原理:通过 driver.execute_script()执行js代码,达到目的

         driver.execute_script("window.scrollBy(0,1000)")
    

    语法:scrollBy(x,y)

    参数 描述
    x 必需。向右滚动的像素值。
    y 必需。向下滚动的像素值。

    或者用

          driver.execute_script("window.scrollTo(0,1000)")
    

    语法:scrollBy(x,y)

    参数 描述
    x 必需。必需。要在窗口文档显示区左上角显示的文档的 x 坐标。
    y 必需。必需。要在窗口文档显示区左上角显示的文档的 y 坐标。
    • 配合chrome插件能快速找到位置:page ruler 😄神器,二哥帮我找的

    • 问题总结:
      为了达到目的我想到了2种方法:
      1.网上大多是拿到浏览器滚动条的js代码,然后执行,不知道为什么我这亲测没有成功;

         js="var q=document.documentElement.scrollTop=10000"
         driver.execute_script(js)
      

    2.通过模拟键盘的形式去滚动屏幕,也没成功,也许是我对这个用法还不熟练

          driver.find_element_by_css_selector('.fadeInUp.animated').send_keys(Keys.DOWN)
    
    • 经验:通过二哥指导,要学会拆解问题,明白原理后,应该将查找问题的重点放在js上,而不是依然固守思维。

    @晴---2016年08月01日18:04:43

    相关文章

      网友评论

      • Clouds_c21c:对于无限滚动条怎么办
      • 70f67a527f5b:大哥,一个网页通过json数据渲染在网页上,我怎样才能知道他一个完整的json数据需要下拉多少啊
        古佛青灯度流年:@LiYaxin_2fa7 https://www.jianshu.com/p/a4cf20f0d657 用这个方法递归吧,给一个结束条件就行,每个页面最底下都有固定标签的
      • _上邪_:你这个是啥版本的selenium,我这边的版本执行JS的方法都变了!
        JavascriptExecutor js = (JavascriptExecutor)driver;
        js.executeScript("window.scrollBy(0,300)");
        古佛青灯度流年:@likeflower950 当时什么版本忘记了
        古佛青灯度流年:@likeflower950 :sweat: 你好可爱 我这明显是Python语言 你那明显是java的
      • 一整包辣条:所以,二哥是谁:sunglasses: 哪来的好基友
        古佛青灯度流年:@活的有点白 写个递归不就到底下了
        a5dd150b7a50:有没有那种能把页面拉到最底端的方法
        你的这个方法就拉了一次
        古佛青灯度流年:@一言不合啊 一个神秘的存在

      本文标题:selenium_通过selenium控制浏览器滚动条

      本文链接:https://www.haomeiwen.com/subject/fmtfsttx.html