Python Selenium Headless Chrome [Duplikat]

Dec 11 2020

Ich versuche, kopfloses Chrom zum Laufen zu bringen, und ich kann es einfach nicht zum Laufen bringen. Ich habe eine Testdatei erstellt, die funktioniert:

from selenium import webdriver

options = webdriver.ChromeOptions()
options.add_argument("--headless")

driver = webdriver.Chrome("C:\Program Files (x86)\chromedriver.exe" , chrome_options=options)
driver.get('http://www.google.com')
print(driver.title)

es funktioniert aber erzeugt auch einen Fehler:

C:/Users/kgood/PycharmProjects/pythonProject1/Unknown.py:6: DeprecationWarning: use options instead of chrome_options
  driver = webdriver.Chrome("C:\Program Files (x86)\chromedriver.exe" , chrome_options=options)

Ich kann mit dem Fehler leben, den ich nehme, weil er sich kopflos öffnet, Chrome erhält und den Titel wie gewünscht druckt, aber wenn ich ihn in mein Hauptprojekt einfüge, öffnet er immer noch ein Fenster, das Fenster ist leer und es ist einfach sitzt dort als leeres Fenster, bis es fertig ist. Irgendwelche Ideen, was los ist? Hier ist der Anfang meines Projektcodes:

from selenium import webdriver
from selenium.webdriver import Chrome
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.keys import Keys
import time

PATH = "C:\Program Files (x86)\chromedriver.exe"
driver = webdriver.Chrome(PATH)
options = webdriver.ChromeOptions()
options.add_argument("--headless")

# gets the website
driver = webdriver.Chrome("C:\Program Files (x86)\chromedriver.exe" , chrome_options=options)
driver.get("https://www.legacyhomesal.com/pennington-freedom-series-richmond-ii")

# finds the Base Price header
price = driver.find_element_by_xpath("//h3[@class='ng-binding']")
print(price.text)

# converts the string to integer
p = price.text[12::]
r = int(p.replace(',', ''))
driver.close()

Ich habe verschiedene Möglichkeiten ausprobiert, aber nur die oben genannte funktioniert irgendwie:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

options = Options()
options.add_argument('--headless')
options.add_argument('--disable-gpu')  # Last I checked this was necessary.
driver = webdriver.Chrome(CHROMEDRIVER_PATH, chrome_options=options)

und

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

options = Options()
options.headless = True
driver = webdriver.Chrome(CHROMEDRIVER_PATH, chrome_options=options)

Antworten

2 PDHide Dec 11 2020 at 09:54
driver = webdriver.Chrome(options=options)

Der Fehler sagt richtig, was es bedeutet, verwenden options = your_optionalschrome_options = your_option

1 dachil1pil1 Dec 11 2020 at 11:34

Es gibt höchstwahrscheinlich ein leeres Fenster, da Sie zweimal "Treiber" aufrufen, das erste jedoch keine URL hat und daher nur leer ist. Ich würde die erste Treibervariable loswerden.