0
votes

WebDriverException: Message: Erreur inconnue: Chrome n'a pas pu démarrer: Exemple d'erreur anormalement à l'aide de ChromeRiver Chrome et Selenium Python

J'essaie d'installer et d'utiliser Selenium ChromeRiver sur ma coquille virtuelle Ubuntu, je suis pas à pas à proximité de divers tutoriels, mais il semble qu'il reste quelque chose qui ne va pas mal ... et après de nombreuses recherches sur la question que je ne trouve pas n'importe quelle réponse.

Voici le petit code que j'essaie de courir: p> xxx pré>

J'ai ajouté le chromé_option grâce au conseil que j'ai trouvé sur divers sujets. Cependant, je ne comprends pas vraiment pourquoi est-ce nécessaire? P>

Malheureusement, mon programme m'envoie l'erreur suivante et je suis bloqué et je ne sais pas quoi faire: P>

/home/lclis/anaconda3/lib/python3.7/site-packages/ipykernel_launcher.py:7: DeprecationWarning: use options instead of chrome_options
  import sys
---------------------------------------------------------------------------
WebDriverException                        Traceback (most recent call last)
<ipython-input-4-259faa721232> in <module>
      5 chrome_options.add_argument('--no-sandbox')
      6 chrome_options.add_argument('--disable-extensions')
----> 7 driver = webdriver.Chrome(chrome_options=chrome_options)
      8 driver.get('https://google.com')

~/anaconda3/lib/python3.7/site-packages/selenium/webdriver/chrome/webdriver.py in __init__(self, executable_path, port, options, service_args, desired_capabilities, service_log_path, chrome_options, keep_alive)
     79                     remote_server_addr=self.service.service_url,
     80                     keep_alive=keep_alive),
---> 81                 desired_capabilities=desired_capabilities)
     82         except Exception:
     83             self.quit()

~/anaconda3/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py in __init__(self, command_executor, desired_capabilities, browser_profile, proxy, keep_alive, file_detector, options)
    155             warnings.warn("Please use FirefoxOptions to set browser profile",
    156                           DeprecationWarning, stacklevel=2)
--> 157         self.start_session(capabilities, browser_profile)
    158         self._switch_to = SwitchTo(self)
    159         self._mobile = Mobile(self)

~/anaconda3/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py in start_session(self, capabilities, browser_profile)
    250         parameters = {"capabilities": w3c_caps,
    251                       "desiredCapabilities": capabilities}
--> 252         response = self.execute(Command.NEW_SESSION, parameters)
    253         if 'sessionId' not in response:
    254             response = response['value']

~/anaconda3/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py in execute(self, driver_command, params)
    319         response = self.command_executor.execute(driver_command, params)
    320         if response:
--> 321             self.error_handler.check_response(response)
    322             response['value'] = self._unwrap_value(
    323                 response.get('value', None))

~/anaconda3/lib/python3.7/site-packages/selenium/webdriver/remote/errorhandler.py in check_response(self, response)
    240                 alert_text = value['alert'].get('text')
    241             raise exception_class(message, screen, stacktrace, alert_text)
--> 242         raise exception_class(message, screen, stacktrace)
    243 
    244     def _value_or_default(self, obj, key, default):

WebDriverException: Message: unknown error: Chrome failed to start: exited abnormally
  (unknown error: DevToolsActivePort file doesn't exist)
  (The process started from chrome location /usr/bin/chromium-browser is no longer running, so ChromeDriver is assuming that Chrome has crashed.)


2 commentaires

Est-ce que cela répond à votre question? Pourquoi le navigateur chrome ne se lance pas quand Exécution de pilote de chrome sélénium sur Ubuntu 18.04


Avez-vous trouvé une solution pour ce problème? J'ai le même problème dans un Ubuntu 20 VPS et jusqu'à présent, la seule chose que j'ai eue, c'est que comme Ubuntu n'aurait pas installé une interface graphique, elle ne peut pas utiliser de chromedriver autre que de passer le - Theadless Argument


3 Réponses :


1
votes

règle thumb i>

une cause commune de chrome de crash pendant le démarrage est en cours d'exécution chrome comme root code> utilisateur strong> ( administrateur code> strong> >) sur Linux. Bien qu'il soit possible de contourner ce problème en passant - drapeau sans sandbox code> lors de la création de votre session WebDriver, une telle configuration n'est pas supportée et très découragée. Vous devez configurer votre environnement pour exécuter Chrome comme un utilisateur régulier à la place. I> p> blockQquote>


Ce premier message d'erreur ... p> xxx pré>

... implique que le chromedriver chromedriver strong> était incapable d'initier / Spawn un nouveau contexte de navigation strong> c'est-à-dire Navigateur Chrome Strong> Session. P>


SO selon le Notes de version de sélénium 's client v3.8.0 strong> chromé_options code> est obsolète: p>

Les paramètres d'option de navigateur sont maintenant normalisés à travers les pilotes sous forme d'options code>. firefox_options code>, chromé_options code> et ie_options code> sont maintenant obsolètes. em> p> blockQuote>

solution h2>

Vous devez utiliser Options CODE> STRY> au lieu de Chrome_Options CODE> lors de l'initialisation du chromedriver / Session Chrome. Si efficacement, votre bloc de code sera: P>

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

chrome_options = Options()
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--disable-extensions')
driver = webdriver.Chrome(executable_path='/path/to/chromedriver', options=chrome_options)
driver.get('https://google.com')


2 commentaires

Bonjour merci pour votre franc! J'ai changé les paramètres comme vous le suggérez, mais la même erreur se produit. Mon système d'exploitation est Windows mais je travaille sur Jupyter Notebook avec Ubuntu depuis Windows Store, j'ai téléchargé le chromedriver Linux. Pensez-vous que cela peut expliquer cette erreur?


@LouisClisson Si le système d'exploitation sous-jacent est Ubuntu , je suppose que vous êtes sur la bonne voie. Pouvez-vous vérifier la réponse mise à jour et laissez-moi savoir le statut.



0
votes

Vous pouvez exécuter un robinet fort> sélénium strong> sur un serveur (Ubuntu avec pas d'interface graphique forte>, non fenêtre x / forte> disponible dans la boîte) avec ce code Snippet:

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

chrome_options = Options()
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--headless')

driver = webdriver.Chrome(executable_path='/usr/lib/chromium-browser/chromedriver', options=chrome_options)
driver.get('https://google.com')


0 commentaires

0
votes

J'étais googling pour une erreur rubis, mais j'ai trouvé cela. Pour certains, il peut être utile.

J'ai mû tûter à tort Session de Capybara (qui repose sur selenium seul) xxx


0 commentaires