python中selenium关于滚动条的循环下拉滚动操作---滚动条操作

 
# -*- coding: utf-8 -*-
# @Time    : 2018/6/19 10:54
# @Author  : 清心
def xh():
   t = True
   time.sleep(1)
   while t:
      driver.execute_script("window.scrollBy(0,1000)")
      try:
         driver.find_element('link_text', '没有更多推荐了,返回首页').click()
         time.sleep(1)
         t = False
      except:
         xh()


if __name__ == '__main__':
   driver = webdriver.Chrome()
   driver.get("https://blog.csdn.net/sily_z/article/details/80733267")
   xh()
 #这个条件是决定你是否继续下滑的条件,如果找到你想要的元素,那么就会跳出循环,不在下滑,否则会一直下滑。
 driver.find_element('link_text', '没有更多推荐了,返回首页').click()

 

 上面这些是我对于循环操作滚动条的操作,原来我页搜索过,但是没有发现直接给一个参考,都是举得例子,我现在就把具体的代码都写出来了,其实实现很简单,就是定义一个方法,判断一下你要寻找的元素对象,元素对象查找不到报异常,再重新操作滚动条。大概是这样,希望对大家有帮助。

 

T:

1.我用的谷歌浏览器,需要自己下载谷歌浏览器,下载驱动,如果使用其他浏览器,请修改浏览器类型

2.

window.scrollBy(0,100) 

这个方法是从当前位置向下滚动100像素,而  window.scrollTo(0,100) 这个方法是从0滚动到100像素,这两个方法都是滚动操作,但是后面这个只会从0像素滚动到100像素,除非修改数值才可以滚动到对应像素位置,而我使用的则会一直向下滚动,希望不要弄混淆了。

 

3.当然,还有一种方法就是鼠标移动到目标元素上方的操作了。

    

from selenium.webdriver.common.action_chains import ActionChains

ActionChains(self.driver).move_to_element(element).perform()
# 将鼠标移动到目标元素上方,适用于当前页面元素已加载完毕,但是在屏幕中看不到的情况。

 

 

 

你可能感兴趣的:(selenium)