今天做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: 这不就是以秒为单位吗,非要说分秒