Запуск підшивки python Selenium WebDriver в хромі


147

Я зіткнувся з проблемою під час роботи з Selenium. Для свого проекту мені потрібно використовувати Chrome. Однак я не можу підключитися до цього браузера після запуску програми Selenium.

Чомусь Selenium не може знайти Chrome сам. Це те, що відбувається, коли я намагаюся запустити Chrome, не включаючи шлях:

Traceback (most recent call last):
  File "./obp_pb_get_csv.py", line 73, in <module>
    browser = webdriver.Chrome() # Get local session of chrome
  File "/usr/lib64/python2.7/site-packages/selenium/webdriver/chrome/webdriver.py", line 46, in __init__
    self.service.start()
  File "/usr/lib64/python2.7/site-packages/selenium/webdriver/chrome/service.py", line 58, in start
    and read up at http://code.google.com/p/selenium/wiki/ChromeDriver")
selenium.common.exceptions.WebDriverException: Message: 'ChromeDriver executable needs to be available in the path.                 Please download from http://code.google.com/p/selenium/downloads/list                and read up at http://code.google.com/p/selenium/wiki/ChromeDriver'

Щоб вирішити цю проблему, я включив шлях Chromium у код, який запускає Chrome. Однак інтерпретатору не вдалося знайти розетку для підключення до:

Traceback (most recent call last):
  File "./obp_pb_get_csv.py", line 73, in <module>
    browser = webdriver.Chrome('/usr/bin/chromium') # Get local session of chrome
  File "/usr/lib64/python2.7/site-packages/selenium/webdriver/chrome/webdriver.py", line 46, in __init__
    self.service.start()
  File "/usr/lib64/python2.7/site-packages/selenium/webdriver/chrome/service.py", line 64, in start
    raise WebDriverException("Can not connect to the ChromeDriver")
selenium.common.exceptions.WebDriverException: Message: 'Can not connect to the ChromeDriver'

Я також спробував вирішити проблему, запустивши хром за допомогою:

хром --ремот-оболонка-порт = 9222

Однак і це не спрацювало.

PS. Ось деякі відомості про мою систему:

www-клієнт: хром 15.0.874.121  
dev-lang: python 2.7.2-r3 Selenium 2.11.1  
ОС: GNU / Linux Gentoo Kernel 3.1.0-gentoo-r1

Я просто хотів повідомити вам, що "--remote-shell-port" - не допустимий параметр командного рядка. Дивіться: peter.sh/experiment/chromium-command-line-switches ("--remote-debugging-port" було б правильним. Будь ласка, пам’ятайте, що вам потрібно закрити всі екземпляри хрому, перш ніж використовувати цю опцію. Тобто створення нове вікно в існуючому сеансі браузера не працює).
dpat

Відповіді:


133

Потрібно переконатися, що окремий двійковий файл ChromeDriver (який відрізняється від двійкового браузера Chrome) знаходиться у вашому шляху чи доступний у змінній середовища webdriver.chrome.driver.

Дивіться http://code.google.com/p/selenium/wiki/ChromeDriver, щоб отримати докладнішу інформацію про те, як виправити речі.

Редагувати:

Правильно, здається, є помилка у прив'язках Python wrt, що читає двійкову хромодрук із шляху або змінної середовища. Здається, якщо Chromeedriver не стоїть на вашому шляху, вам доведеться передати його як аргумент конструктору.

import os
from selenium import webdriver

chromedriver = "/Users/adam/Downloads/chromedriver"
os.environ["webdriver.chrome.driver"] = chromedriver
driver = webdriver.Chrome(chromedriver)
driver.get("http://stackoverflow.com")
driver.quit()

Вибачте забути про це. Я отримав це посилання.
Акендо

2
Спробував Chromedriver замість Firefox Webdriver .. майже 3 рази
збільшив

4
Крім того , хочу зазначити , що аргумент , який передається конструктору шлях до ChromeDriver бінарного і НЕ каталог , що містить виконуваний файл ChromeDriver (невикористаний за останній півгодини з'ясувати , що відбувається неправильно).
TheRookierLearner

107

Для Linux

  1. Перевірте, чи встановлено останню версію chrome brwoser-> chromium-browser -version
  2. Якщо ні, встановіть останню версію хрому sudo apt-get install chromium-browser
  3. отримати відповідну версію драйвера хрому звідси
  4. Розпакуйте chromedriver.zip
  5. Перемістіть файл до /usr/bin каталогsudo mv chromedriver /usr/bin
  6. Йти до /usr/bin каталогуcd /usr/bin
  7. Тепер вам потрібно запустити щось подібне sudo chmod a+x chromedriver щоб позначити його виконуваним.
  8. нарешті ви можете виконати код.

    from selenium import webdriver
    
    driver = webdriver.Chrome()
    driver.get("http://www.google.com")
    print driver.page_source.encode('utf-8')
    driver.quit()
    display.stop()

1
Дуже хороша! Одне зауваження: мені вдалося змусити це працювати лише з 32-розрядним хромодрівером, хоча я працюю на 64-розрядному Linux.
Імран

У Ubuntu (14.04) ви можете встановити пакунок хрому-хромідри (наприклад, з apt-get) та додати шлях файлу хромедрівера до змінної оболонки PATH = "$ {PATH}": / usr / lib / Chrome-браузер / Якщо ви додасте це до свого .bashrc, вам не потрібно буде встановлювати його щоразу, коли ви хочете протестувати селен.
Арпад Хорват

1
насправді ця відповідь повинна мати набагато більше результатів. в основному це шлях для кожного водія, як geckodriver.
holzkohlengrill

Моя версія Chrome-браузера згадується як (Chromium 67.0.3396.99 Вбудована в Ubuntu, працює на Ubuntu 16.04), але посилання має версії лише як 2.0-2.9. Потрібна допомога.
Вайбхав Махешварі

93

Тільки для Mac OSX

Найпростіший спосіб пройти (якщо припустити, що у вас вже встановлений домашній мов , який, якщо ні, то спершу зробіть це, і дозвольте домашньому шрифту покращити ваше життя) - просто виконати таку команду:

brew install chromedriver

Це повинно поставити хромодрук на ваш шлях, і ви повинні бути все налаштовані.


Він не може працювати на Mac. selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH.
wyx

1
@wyx Навколишнє середовище може не налаштовано правильно. Спробуйте запустити brew doctorі побачити, чи знайде щось таке.
Ячін

2
Це один з тих теплих і нечітких моментів, коли ти просто щасливий, що ти маєш Mac. Так легко.
Користувач

СЕРЦЕ! Я люблю заварювати
RHSMan


23

Для вікон, будь ласка, chromedriver.exeрозмістіть під<Install Dir>/Python27/Scripts/


і куди поставити ubuntu? int /usr/lib/чи десь ще?
Gaurav Jain

PATHНемає файлу в недостатньому розміщенні, щоб перенести його туди, /Scripts/де ride.pyпрацює.
Qwerty

1

Є два способи запустити тести на питон Selenium в Google Chrome. Я розглядаю Windows (Windows 10 у моєму випадку):

Необхідна умова: завантажте найновіший драйвер Chrome з: https://sites.google.com/a/chromium.org/chromedriver/downloads

Спосіб 1:

i) Витягніть завантажений zip-файл у вибраному вами каталозі / розташуванні.
ii) Встановіть виконавчий шлях у своєму коді, як показано нижче:

self.driver = webdriver.Chrome(executable_path='D:\Selenium_RiponAlWasim\Drivers\chromedriver_win32\chromedriver.exe')

Спосіб 2:

i) Просто вставте chromedriver.exe в / Python / Scripts / (У моєму випадку папка була: C: \ Python36 \ Scripts)
ii) Тепер запишіть простий код, як показано нижче:

self.driver = webdriver.Chrome()

-1

Для IDE Windows:

Якщо ваш шлях не працює, ви можете спробувати додати його chromedriver.exeдо свого проекту, як у цій структурі проекту.

chromedriver.exe

Тоді вам слід завантажити chromedriver.exeосновний файл. Щодо мене, я завантажив driver.exeв driver.py.

def get_chrome_driver():
return webdriver.Chrome("..\\content\\engine\\chromedriver.exe",
                            chrome_options='--no-startup-window')

..означає driver.py'sверхній каталог

.означає каталог, де driver.pyзнаходиться

Сподіваюся, що це буде корисно.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.