selenium下拉滚动页面

原始网站:https://www.cnblogs.com/zlstg/articles/15070995.html

 

1. JS处理滚动条
通过webdriver提供的execute_script()方法执行JS脚本操作滚动条

右侧滚动条

Firefox浏览器和Chrome浏览器用的语法不一样,下面区分列出来,貌似谷歌浏览器71版通用火狐了

js = "var q=document.documentElement.scrollTop=10000" # Firefox浏览器滚动到底部

js = "var q=document.documentElement.scrollTop=0" # Firefox浏览器滚动到顶部

js = "var q=document.body.scrollTop=10000" # Chrome浏览器滚动到底部

js = "var q=document.body.scrollTop=0" # Chrome浏览器滚动到顶部

js = "var q=document.getElementById('id').scrollTop=0" # 通过id属性切入操作内嵌表单的滚动条

横向滚动条

js = "window.scrollTo(x,y);" # x为横向距离 y为纵向距离

据说不存在兼容问题的scrollTo函数

--scrollHeight 获取对象的滚动高度。
--scrollLeft 设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离。
--scrollTop 设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离。
--scrollWidth 获取对象的滚动宽度

js = "window.scrollTo(0,document.body.scrollHeight)" # 滚动到底部

js = "window.scrollTo(0,0)" # 滚动到顶部

js = "window.scrollTo(x,y)" # 滚动到横向距离为X纵向距离为Y的位置

 

 

2. 执行js脚本

driver.execute_script(js)

上个代码:

# coding=utf-8
# author:Ven

from selenium import webdriver
from time import sleep
driver = webdriver.Chrome()
driver.set_window_size(width=800,height=700)
driver.get("https://www.baidu.com")
driver.find_element_by_xpath("//input[@id='kw']").send_keys('selenium')
driver.find_element_by_xpath("//input[@id='su']").click()
sleep(1)
js = "window.scrollTo(0,document.body.scrollHeight)"
driver.execute_script(js)
sleep(1)
js = "window.scrollTo(500,0)"
driver.execute_script(js)
sleep(1)
driver.quit()
元素聚焦
元素聚焦--通过JS让页面直接跳到元素出现的位置(注意遮盖现象,聚焦被遮盖聚焦附近元素)

target = driver.find_element_by_xpath()
driver.execute_script("arguments[0].scrollIntoView();", target)

# coding=utf-8
# author:Ven

from selenium import webdriver
from time import sleep

driver = webdriver.Chrome()
driver.get("https://www.baidu.com")
driver.find_element_by_xpath("//input[@id='kw']").send_keys('selenium')
driver.find_element_by_xpath("//input[@id='su']").click()
driver.set_window_size(width=600, height=600)
sleep(2)
target = driver.find_element_by_xpath("//*[@id='page']/a[1]/span[2]")
driver.execute_script("arguments[0].scrollIntoView();", target) # 元素聚焦到翻页按钮 - 2
sleep(2)
driver.quit()

 
posted on 2022-05-20 15:35  ClareBaby01  阅读(474)  评论(0编辑  收藏  举报