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

Selenium脚本执行完成后如何保持Chrome窗口不关闭?

让Selenium脚本执行后Chrome窗口保持打开的解决方案

方法1:使用Chrome的detach参数(推荐)

Selenium 4及以上版本支持通过Chrome配置让浏览器在脚本结束后保持运行,只需在ChromeOptions中添加detach实验选项:

修改你的Chrome配置代码:

# Chrome-Optionen konfigurieren
chrome_options = Options()
chrome_options.add_argument("--disable-gpu")
chrome_options.add_experimental_option("detach", True)  # 新增:让浏览器保持打开

这样脚本执行完毕后,Chrome窗口会继续保留,不会自动关闭。

方法2:手动暂停脚本执行

如果不想修改浏览器配置,可以在脚本的最后添加暂停逻辑,阻止脚本进程终止,从而维持浏览器窗口:

在脚本的最末尾添加以下代码:

# 暂停脚本,直到用户按下回车键
input("按下回车键后关闭浏览器...")
# 可选:用户确认后手动关闭浏览器
# driver.quit()

或者使用固定时长的休眠(灵活性较差,不推荐):

# 暂停1小时,之后脚本结束窗口会关闭
time.sleep(3600)

修改后的完整代码示例

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.chrome.options import Options
from selenium.common.exceptions import NoSuchElementException  # 补充缺失的导入
import time
import keyboard

# Datei mit Anmeldedaten (pro Zeile: Benutzername:Passwort)
credentials_file = "anmeldedaten.txt"

# URL für die Anmeldung
login_url = "https://spotify.com/en/login"

# URL der Webseite, auf der der Song abgespielt werden soll
webpage_url = "https://open.spotify.com/intl-de/track/2QyxM5FQLfIApmfeNikEli?si=4fee9599f1da45cd"

# Lade die Anmeldedaten aus der Datei
with open(credentials_file, "r") as file:
    username, password = file.readline().strip().split(":")

    time.sleep(2)

# Funktion zur Anmeldung auf der Webseite
def login(driver):
    driver.get(login_url)
    # Füllen Sie hier die Anmeldedaten aus und klicken Sie auf den Anmelde-Button

    time.sleep(4)

    username_input = driver.find_element(By.CSS_SELECTOR, "input#login-username")
    password_input = driver.find_element(By.CSS_SELECTOR, "input#login-password")

    username_input.send_keys(username)
    password_input.send_keys(password)

    driver.find_element(By.CSS_SELECTOR, "button[data-testid='login-button']").click()

    driver.maximize_window()

    time.sleep(3)

# Funktion zum Öffnen des Songs und Abspielen
def open_and_play_song(driver):
    driver.get(webpage_url)
    wait = WebDriverWait(driver, 10)  # Wartezeit von 10 Sekunden
    keyboard.press_and_release('esc')

    time.sleep(5)
    delay2 = 2  # 补充缺失的变量定义
    try:
        cookie = driver.find_element(By.XPATH, "//button[text()='Cookies akzeptieren']")
        cookie.click()
    except NoSuchElementException:
        try:
            button = driver.find_element(By.XPATH, "//button[contains(@class,'onetrust-close-btn-handler onetrust-close-btn-ui')]")
            button.click()
        except NoSuchElementException:
            time.sleep(delay2)
    
    time.sleep(4)
    
    # Hier könnten Sie den Abspiel-Button lokalisieren und klicken
    playmusic_xpath = "(//button[@data-testid='play-button']//span)[3]"
    playmusic = driver.find_element(By.XPATH, playmusic_xpath)
    playmusic.click()

# Chrome-Optionen konfigurieren
chrome_options = Options()
chrome_options.add_argument("--disable-gpu")
chrome_options.add_experimental_option("detach", True)  # 新增:让浏览器保持打开

# Sitzung erstellen und anmelden
driver = webdriver.Chrome(options=chrome_options)
login(driver)
time.sleep(2)  # Warten Sie, bis die Anmeldung abgeschlossen ist
open_and_play_song(driver)
time.sleep(2)  # Warten Sie, bis die Seite geladen ist

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 02:44:56