You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python Selenium脚本执行过快,如何放慢Chrome浏览器执行速度?

解决Selenium执行过快无法查看UI流程的方法

你用的implicitly_wait是用来等待元素加载的,不是放慢执行速度的,所以起不到你想要的效果。下面给你几个实用的解决办法:

1. 直接添加固定延迟(最简单)

用Python标准库的time.sleep()在关键操作前后加固定等待,比如每个操作后等1-2秒,适合学习时观察UI流程。

修改你的代码示例:

import time  # 导入time模块
from selenium import webdriver
from selenium.webdriver.chrome.service import Service as ChromeService
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.common.by import By

driver = webdriver.Chrome(service=ChromeService(ChromeDriverManager().install()))
driver.get("https://www.facebook.com/")
driver.implicitly_wait(10)

def timing(driver):
    time.sleep(2)  # 等待2秒再定位元素
    driver.find_element(By.CSS_SELECTOR , "input#email").send_keys("abc")
    time.sleep(2)  # 输入完成后再等待2秒

2. 设置全局操作延迟(更省心)

给ChromeDriver添加--slowmo参数,让每个Selenium命令自动延迟指定毫秒数,不用手动在每个步骤加sleep。

示例代码:

from selenium import webdriver
from selenium.webdriver.chrome.service import Service as ChromeService
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.common.by import By

options = webdriver.ChromeOptions()
options.add_argument("--slowmo=1000")  # 每个操作延迟1000毫秒(1秒)
driver = webdriver.Chrome(service=ChromeService(ChromeDriverManager().install()), options=options)
driver.get("https://www.facebook.com/")
driver.implicitly_wait(10)

def timing(driver):
    driver.find_element(By.CSS_SELECTOR , "input#email").send_keys("abc")

3. 自定义延迟装饰器(灵活可控)

如果想给特定的交互方法(比如click、send_keys)统一加延迟,可以写一个装饰器,不用逐个修改代码:

import time
from functools import wraps
from selenium import webdriver
from selenium.webdriver.chrome.service import Service as ChromeService
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.common.by import By

def add_delay(delay=1):
    def decorator(func):
        @wraps(func)
        def wrapper(*args, **kwargs):
            result = func(*args, **kwargs)
            time.sleep(delay)
            return result
        return wrapper
    return decorator

# 给send_keys方法统一加1秒延迟
webdriver.remote.webelement.WebElement.send_keys = add_delay(1)(webdriver.remote.webelement.WebElement.send_keys)

driver = webdriver.Chrome(service=ChromeService(ChromeDriverManager().install()))
driver.get("https://www.facebook.com/")
driver.implicitly_wait(10)

def timing(driver):
    driver.find_element(By.CSS_SELECTOR , "input#email").send_keys("abc")

同理,你也可以用这个装饰器给click等其他交互方法添加延迟。

内容的提问来源于stack exchange,提问作者Sohail M

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 16:32:41