selenium 移动滚动条方法

代码可以直接取用。

一、浏览器自带的滚动条。

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

from selenium import webdriver
from time import sleep

class Test_8888():

    def test_8888(self):
        self.wd = webdriver.Firefox()
        self.wd.maximize_window()
        self.wd.get("http://www.baidu.com")

        self.wd.find_element_by_id("kw").send_keys("selenium")
        self.wd.find_element_by_id("su").click()
        sleep(1)

        ```
        'var q=document.documentElement.scrollTop=XXX'
        xxx 可变数值,修改滚动条移动多少。
        ```
        jsDown = "var q=document.documentElement.scrollTop=10000"
        jsUp = "var q=document.documentElement.scrollTop=0"

        for i in range(10):
            print("向下")
            self.wd.execute_script(jsDown)
            sleep(0.5)
            print("向上")
            self.wd.execute_script(jsUp)
            sleep(0.5)

        self.wd.close()

if __name__ == '__main__':
    test = Test_8888()
    test.test_8888()

二、内嵌框架的滚动条。

js = "var q=document.getElementById('ID').scrollTop=100000"
首先定位到内嵌框架的ID 然后放入代码。这有个坑当前页面有iframe时,如果你进入去了然后又要滑动那你只有先出来在定位滑动。不然会报找不到元素。


image.png
import time
from selenium import webdriver


class Test_8889():

    def test_8889(self):
        self.wd = webdriver.Firefox()
        self.wd.maximize_window()
        self.wd.get("https://ebanks.cgbchina.com.cn/perbankDemo//main.htm#")
        time.sleep(2)
        for i in range(6):
            self.wd.find_element_by_id("buttonNextDiv").click()

        '''
        "var q=document.getElementById("id").scrollTop=100000"
        '''
        jsDown = "var q=document.getElementById('mainWrapper').scrollTop=100000"
        jsUpward = "var q=document.getElementById('mainWrapper').scrollTop=0"

        for i in range(10):
            print("向下")
            self.wd.execute_script(jsDown)
            time.sleep(0.5)
            print("向上")
            self.wd.execute_script(jsUpward)
            time.sleep(0.5)

        self.wd.close()

if __name__ == '__main__':
    Test_8889().test_8889()

你可能感兴趣的:(selenium 移动滚动条方法)