今天做python动态网页觉得构造请求太麻烦,而网站几次滚动就能下拉到底,所以想着直接用selenium连续下拉滚动到底,然后直接一把梭。没搜到太好太直接的方案。边做边试大概实现了功能。
核心代码就这么几句,思路就是用scrollBy一直下拉滚动条,然后scrollTop会一直变化,当scrollTop不变时,说明就到底了。跳出循环即可。
import time
from lxml import etree
from selenium import webdriver
driver =webdriver.Chrome()
#定义一个初始值
temp_height=0
while True:
#循环将滚动条下拉
driver.execute_script("window.scrollBy(0,1000)")
#sleep一下让滚动条反应一下
time.sleep(5)
#获取当前滚动条距离顶部的距离
check_height = driver.execute_script("return document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop;")
#如果两者相等说明到底了
if check_height==temp_height:
break
temp_height=check_height
print(check_height)
driver.quit()
今天做python动态网页觉得构造请求太麻烦,而网站几次滚动就能下拉到底,所以想着直接用selenium连续下拉滚动到底,然后直接一把梭。没搜到太好太直接的方案。边做边试大概实现了功能。核心代码就这么几句,思路就是用scrollBy一直下拉滚动条,然后scrollTop会一直变化,当scrollTop不变时,说明就到底了。跳出循环即可。import timefrom lxml import etreefrom selenium import webdriverdriver =webdri
UI自动化中经常会遇到元素识别不到,找不到的问题,原因有很多,比如不在iframe里,xpath或id写错了等等;但有一种是在当前显示的页面元素不可见,拖动下拉条后元素就出来了。
比如下面这样一个网页,需要进行拖动下拉条后才能通过
selenium
找到密码输入框的元素,
在python中有几种方法解决这种问题,简单介绍下,给需要的人:
方法一)使用js脚本直接操作,方法如下:
js=var q=document.getElementById('id').scrollTop=10000
driver.execute_script(js)
js=var q=document.do
在UI自动化中存在某些特殊场景,需要拉动
滚动条
到底
部或者
滚动
到某个位置 才可以触发按钮点击
二、使用方法
1、在
selenium
中的execute_script调用js方法
execute_script介绍:
在当前窗口/框架 同步执行javaScript
scrollTop:这个元素的顶部到视口可见内容(的顶部)的距离
滚动条
在div内嵌的demo:
#获取内嵌div的位置 并设置
滚动条
移动的值
js="document.getElementById('agreementMain').sc
一、设置
滚动条
位置
execute_script(“document.documentElement.scrollTop= 位置”)
from
selenium
import webdriver
import time
driver = webdriver.Chrome()
# 访问网址
driver.get(
核心代码就这么几句,思路就是用scrollBy一直下拉
滚动条
,然后scrollTop会一直变化,当scrollTop不变时,说明就
到底
了。跳出
循环
即可。
import time
from lxml import etree
from
selenium
import webdriver
driver =webdriver.Chrome()
driver.get('http://www.baidu.com')
#定义一个初始值
temp_height=0
while True:
1、如果
滚动条
是针对整个HTML可以用如下方式:
js = "var q=document.documentElement.scrollTop=10000" # documentElement表示获取根节点元素
self.driver.execute_script(js)
2、如果
滚动条
是针对整个body可以用如下方式:
js = "var q=document.b...
boolean Location = false;
int sleep_total = 0;
while ((!Location) && (sleep_total <= max_sleep_total)) {
try {
WebElement element = driver.f...
有时候我们需要控制页面
滚动条
上的
滚动条
,但
滚动条
并非页面上的元素,这个时候就需要借助js是来进行操作。一般用到操作
滚动条
的会两个场景:
注册时的法律条文需要阅读,判断用户是否阅读的标准是:
滚动条
是否拉到最下方。要操作的页面元素不在吸视范围,无法进行操作,需要拖动
滚动条
这里需要掌握一些JS的知识,其方法如下:
用于标识
滚动条
位置的...
1. 使用os模块。
cur--path = os.path.realpath("__file__”) 获取当前脚本的真实路径
curpath = ospath.dirname (cur--path)获取当前脚本的文件夹路径
2.apath = os.path.jion(curpath, "脚本.py") # 拼接需要
循环
的脚本路径
3.使用os.syste...
from
selenium
import webdriver
from
selenium
.webdriver.common.keys import Keys
import time
# 启动 Chrome 浏览器
driver = webdriver.Chrome()
# 打开网页
driver.get("https://www.example.com")
# 模拟向下
滚动
到页面底部
while True:
# 执行 JavaScript 代码
实现
滚动
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
# 等待一段时间,让页面加载新内容
time.sleep(2)
# 检查是否已经
滚动
到页面底部
if driver.execute_script("return window.innerHeight + window.pageYOffset >= document.body.scrollHeight;"):
break
# 关闭浏览器
driver.quit()
这段代码使用了
Selenium
的 `execute_script` 方法,通过执行 JavaScript 代码
实现
滚动
操作。在每次
滚动
后,等待一段时间让页面加载新内容,然后检查是否已经
滚动
到页面底部。如果到达底部,则退出
循环
。
您可以根据自己的需求进行修改和调整。希望对您有所帮助!
Es ConnectionError([SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1056)) caused by: SSLErr
weixin_45587576:
a padding to disable MSIE and Chrome friendly error page
qq_39054053:
Python中time.perf_counter模块的简单用法
m0_51704892: