zoukankan      html  css  js  c++  java
  • selenium之操作浏览器滚动条

    前言

    有些页面元素一开始并不可见,需要滚动条下拉后才能加载出来,可以使用浏览器的滚动条下拉后进行调试

    方法一

    如何操作浏览器滚动条呢?下面这个百度的例子,让你一目了然。

    from selenium import webdriver
    from selenium.webdriver.support.wait import WebDriverWait
    import time
    driver=webdriver.Chrome()
    driver.get("http://www.baidu.com")
    driver.implicitly_wait(5)
    driver.maximize_window()
    driver.find_element_by_id("kw").send_keys("特朗普")
    driver.find_element_by_id("su").click()
    time.sleep(2)
    #,设置为10000表示将滚动条拖动到底部,也可以设置其他数值,根据自己想要定位元素设置
    #js="var q=document.documentElement.scrollTop=10000"       #写法一
    #js="document.documentElement.scrollTop=10000"             #写法二
    js="var action=document.documentElement.scrollTop=100000"  #写法三
    driver.execute_script(js)  #执行js脚本
    time.sleep(3)
    #设置为0表示将滚动条拖动到顶部
    js1="var action=document.documentElement.scrollTop=0"
    driver.execute_script(js1)  #执行js脚本
    time.sleep(3)
    driver.quit()

    方法二

    scrollTo(x, y)

    第一个参数 x 是横向距离,第二个参数 y 是纵向距离。

    from selenium import webdriver
    from selenium.webdriver.support.wait import WebDriverWait
    import time
    driver=webdriver.Chrome()
    driver.get("http://www.baidu.com")
    driver.implicitly_wait(5)
    driver.maximize_window()
    driver.find_element_by_id("kw").send_keys("特朗普")
    driver.find_element_by_id("su").click()
    time.sleep(3)
    #第一个参数 x 是横向距离,第二个参数 y 是纵向距离
    js="window.scrollBy(0, 10000)"
    driver.execute_script(js)  #执行js脚本
    time.sleep(3)
    driver.quit()

    这种方法可以对横向滚动条进行控制,把y设置为0,x设置为想要的距离就可以实现

    细心的同学已经发现了, 我上面写的scrollTo()、但是代码中用的是scrollBy()。

    那就再解释一下,知识点:scrollTo()是绝对滚动,scrollBy()是相对滚动,比如:

    scrollBy(0,10000),会在当前位置上,移动到(0,y+10000)

    scrollTo(0,500),会在原始的位置上(0,),移动到(0,500)的位置上

    scrollTo(0,0),会回到原始的位置上(0,0)

  • 相关阅读:
    分频
    加法器
    The best season is around you
    电影词汇
    DSP芯片和所有微处理器一样,以2的补码形式表示有符号数。
    乔布斯给妻子的结婚20周年情书
    webapp 处理表单
    看过戴旭之《中国面临被肢解的命运》之后
    转我在敏捷中国Open Space上发起的讨论主题——如何激励,用绩效考核吗?
    转QA不是QC,兼谈Lean、Kanban和TDD(上)
  • 原文地址:https://www.cnblogs.com/king2/p/13657687.html
Copyright © 2011-2022 走看看