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> 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.)
3 Réponses :
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 python 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> etie_options code> sont maintenant obsolètes. em> p> blockQuote>
solution h2>
Vous devez utiliser
Options CODE> STRY> au lieu deChrome_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')
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 B>, je suppose que vous êtes sur la bonne voie. Pouvez-vous vérifier la réponse mise à jour et laissez-moi savoir le statut.
Vous pouvez exécuter un robinet fort> sélénium strong> sur un serveur (Ubuntu avec 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')
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) p>
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 Code> Argument