我试图滚动Google Maps窗口左侧的结果窗格,但我使用的这段代码没有滚动结果窗格,也没有显示任何错误.

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time

url = "https://www.google.com/maps/@12.959744,77.6142848,12z?entry=ttu"

driver = webdriver.Chrome()
driver.get(url)
driver.maximize_window()
time.sleep(15)
# find text_field and search for restaurants
search_box = WebDriverWait(driver,15).until(EC.presence_of_element_located((By.XPATH,"//input[@id = 'searchboxinput']")))
time.sleep(5)
search_box.send_keys("restaurants")
search_box.send_keys(Keys.RETURN)
time.sleep(12)
# scroll the result pane
results = WebDriverWait(driver,20).until(EC.presence_of_element_located((By.XPATH,'//div[@role="feed"]')))
time.sleep(10)
driver.execute_script('window.scrollTo(0,document.body.scrollHeight);')
time.sleep(8)

我怎样才能正确地做这件事?

推荐答案

您提供的代码似乎是正确的,但当您try 滚动结果窗格时,它可能没有完全加载.您可以try 增加结果窗格元素出现的等待时间,看看这是否有帮助.

此外,您还可以try 使用selenium.webdriver.Common.action_chains模块中的ActionChains类滚动结果窗格.此代码将鼠标光标移动到结果窗格,单击它以使其获得焦点,然后发送PAGE_DOWN键按下以模拟向下滚动.您可能需要根据您的特定用例调整等待时间和PAGE_DOWN键按下的次数.

from selenium.webdriver.common.action_chains import ActionChains
    
results = WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.XPATH,'//div[@role="feed"]')))
time.sleep(10)    
action = ActionChains(driver)
action.move_to_element(results).click().perform()
action.send_keys(Keys.PAGE_DOWN).perform()

Python相关问答推荐

在for循环中保存和删除收件箱

使用pandas MultiIndex进行不连续 Select

如何从不同长度的HTML表格中抓取准确的字段?

使用decorator 重复超载

具有多个组的条形图的不同y标度

如何终止带有队列的Python进程?+ 队列大小的错误?

Google Drive API获取文件计量数据

Python -Polars库中的滚动索引?

从webhook中的短代码(而不是电话号码)接收Twilio消息

Polars比较了两个预设-有没有方法在第一次不匹配时立即失败

Polars LazyFrame在收集后未返回指定的模式顺序

Pystata:从Python并行运行stata实例

如何检测背景有噪的图像中的正方形

沿着数组中的轴计算真实条目

如何在python xsModel库中定义一个可选[December]字段,以产生受约束的SON模式

Julia CSV for Python中的等效性Pandas index_col参数

Python虚拟环境的轻量级使用

无法定位元素错误404

OR—Tools中CP—SAT求解器的IntVar设置值

可以bcrypts AES—256 GCM加密损坏ZIP文件吗?