Python Selenium Headless Chrome [duplicate]

Dec 11 2020

Im essayant de faire fonctionner le chrome sans tête et je ne peux tout simplement pas le faire fonctionner. J'ai créé un fichier de test qui fonctionne:

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)

cela fonctionne mais produit également une erreur:

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)

Je peux vivre avec l'erreur, je suppose, car il ouvre sans tête, obtient Chrome, imprime le titre comme je l'ai demandé, mais quand je vais le coller dans mon projet principal, cela ouvre toujours une fenêtre, la fenêtre est vide, et c'est juste se trouve là comme une fenêtre vide jusqu'à ce qu'il soit terminé. Avez-vous une idée de ce qui passe? Voici le début de mon code de projet:

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

J'ai essayé plusieurs façons différentes de le faire, mais seule celle ci-dessus fonctionne en quelque sorte:

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)

et

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

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

Réponses

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

l'erreur dit correctement ce que cela signifie, utilisez options = your_optionquechrome_options = your_option

1 dachil1pil1 Dec 11 2020 at 11:34

Il y a probablement une fenêtre vide parce que vous appelez deux fois "driver" mais la première n'a pas d'URL donc elle est juste vide. je me débarrasserais de la première variable de pilote.