Selenium Python操作币安POS页面,如何实现弹窗滚动到底部?
问题核心原因
window.scrollTo 仅作用于浏览器全局页面滚动条,币安POS的产品列表弹窗是独立的内部可滚动容器,滚动逻辑由该容器自身控制,和全局页面无关,因此全局滚动方法全部失效。
可行解决方案
首先通过浏览器F12元素选择器,点击弹窗的滚动区域,定位到带overflow: auto/overflow: scroll属性的可滚动容器节点,再直接通过JS操作该容器的滚动属性即可。
修改后完整代码
from selenium import webdriver from time import sleep def getpage(driver): driver.get('https://www.binance.com/it/pos') sleep(3) # 点击展开全部产品按钮 driver.find_element_by_xpath('//div[@id="savings-lending-pos-expend"]').click() sleep(2) # 定位弹窗内的可滚动容器,可根据实际定位到的节点调整xpath scroll_container = driver.find_element_by_xpath('//div[@class="css-n1ers"]') # 滚动容器到最底部 driver.execute_script('arguments[0].scrollTop = arguments[0].scrollHeight', scroll_container) # 如果存在懒加载,可添加循环反复滚动加载全部内容 # for _ in range(6): # driver.execute_script('arguments[0].scrollTop = arguments[0].scrollHeight', scroll_container) # sleep(1) driver = webdriver.Firefox() getpage(driver)
补充说明
如果要使用send_keys(Keys.PAGE_DOWN)方法,绑定上述定位到的可滚动容器元素即可,无需绑定其他节点。
内容的提问来源于stack exchange,提问作者giacomomaraglino
相关产品推荐
相关产品推荐

