Selenium爬虫 -- 操控滚动条方法

大致分为三种,一是整个网页的滚动条,二是页面中某个div块的滚动条,三是网页的弹出框的滚动条。

步骤就是先定位,再拖动,利用JS脚本来进行。

目录

一、整个网页的滑动

二、某个div块的滑动

三、弹出窗口的滑动


一、整个网页的滑动

滑动操作代码就是用JS脚本。

# 下拉测试1 正常网页整个的滑动下拉窗口
self.browser1.execute_script("window.scrollTo(0,document.body.scrollHeight)")
self.browser1.execute_script("scrollBy(0,100000)")

加上循环和停止条件,就可以进行完整下拉滚动加载操作。 

# 下拉测试1
pre_height = 0
now_height = 0
while True:
    self.browser1.execute_script("window.scrollTo(0,document.body.scrollHeight)")
    self.browser1.execute_script("scrollBy(0,100000)")
    time.sleep(random.randint(7, 15))
    now_height = self.browser1.execute_script("return document.documentElement.scrollHeight;")
    print(now_height)
    if now_height == pre_height:
        break
    pre_height = now_height
time.sleep(random.randint(7, 15))

二、某个div块的滑动

完整加载的思想就是循环加上停止条件,不多赘述,只说操作。

# 下拉测试2 定位div滚动
self.browser1.execute_script("(div.artdeco-modal__content).scrollTop(10000)")

三、弹出窗口的滑动

这其实也是div块的滑动,只是改变了方法,将界面拖动到可见的元素(最稳定可用)。

其中,

driver.execute_script("arguments[0].功能;", 元素)

是JS脚本替代点击以及下拉滑动等操作的最有效方式。 

# 下拉测试4 拖动到可见元素 
target = self.browser1.find_elements_by_xpath('.//div[@class="artdeco-entity-lockup__title ember-view"]')
self.browser1.execute_script("arguments[0].scrollIntoView();", target[len(target)-1])

 

参考文章:

https://www.jb51.net/article/165315.htm

https://www.cnblogs.com/limxiaosi/p/5964849.html

 

 

你可能感兴趣的:(Debug记录,编程小技巧,Spider-爬虫,javascript,python,selenium,js,css)