python - 使用 python 在 selenium 中滚动时出错
问题描述
我正在尝试像往常一样滚动到页面底部。但是在这个网站上它似乎不起作用。这是您需要滚动到底部才能加载新链接的地方之一。
这是我正在使用的命令:
browser.execute_script("window.scrollTo(0, document.body.scrollHeight);")
我得到的错误是:
Traceback (most recent call last):
File "/somePathTo/someProgram.py", line 12, in <module>
browser.execute_script("window.scrollTo(0,document.body.scrollHeight);")
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py", line 636, in execute_script
'args': converted_args})['value']
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: unknown error: Cannot read property 'offsetTop' of null
(Session info: chrome=73.0.3683.86)
(Driver info: chromedriver=72.0.3626.69 (3c16f8a135abc0d4da2dff33804db79b849a7c38),platform=Mac OS X 10.14.3 x86_64)
任何其他滚动都无法正常工作,JS 脚本出了点问题...我不知道什么元素为空,因此不能具有“offsetTop”属性...也许我应该识别一些可以有那个属性,但我对 JS 的了解并不多于这个脚本
编辑:我确实用这段代码解决了我的具体问题
browser.execute_script('arguments[0].scrollIntoView(true);', target)
其中 target 是底部的元素。但是,我想知道 JS 代码有什么问题。
解决方案
推荐阅读
- java - 如何使用键 ID 更新 SQLite 中的特定字段?
- bootstrap-4 - 如何让表悬停引导程序 4 开始工作
- rust - Glob 多种文件类型
- gpu - 使用张量调用 Model.fit / 在 CPU 而非 GPU 上执行操作 / Tensorflow 2.1
- swift - TextField with animation crashes app and looses focus
- c# - 为什么我的按钮在执行其他功能之前不执行它的功能
- powershell - 删除日志行中的重复字段
- javascript - 单击以在 foreach 循环中更改 img src
- ruby-on-rails - 重复对象,包括关联和 ActionText 内容
- node.js - 如何从猫鼬的子文档数组中仅获取文档