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
相关产品推荐
相关产品推荐

