如何在Selenium脚本完成后保持Chrome窗口打开?

2ul0zpep  于 12个月前  发布在  Go
关注(0)|答案(2)|浏览(116)

在我的脚本执行并完成后,Chrome窗口关闭。我希望Chrome窗口在脚本结束时保持打开状态。
下面是我的代码:

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
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)

    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 für den Headless-Modus
chrome_options = Options()
chrome_options.add_argument("--disable-gpu")  # Notwendig, um GPU-Beschleunigung im Headless-Modus zu deaktivieren

# 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`

我希望Chrome窗口在我的脚本执行后保持打开状态。

rmbxnbpk

rmbxnbpk1#

以下是两种在脚本到达结尾后保持浏览器打开的方法。
1.通过以下选项将浏览器从chromedriver中分离:

chrome_options.add_experimental_option("detach", True)

1.添加断点:

import pdb
pdb.set_trace()

或者是简化版的

breakpoint()

要从断点继续,请在控制台中键入c并按Enter键。

xtupzzrd

xtupzzrd2#

from selenium import webdriver

options = webdriver.ChromeOptions()
options.add_experimental_option("detach", True)

包括此Chrome_option,您工作就完成了。

相关问题