Запуск привязок python для Selenium WebDriver в хроме

У меня возникла проблема при работе с 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'

Я также попытался решить проблему, запустив хром с помощью

chromium --remote-shell-port=9222

Однако это тоже не сработало.

PS. Вот некоторые сведения о моей системе:

www-client: chromium 15.0.874.121  
dev-lang:   python 2.7.2-r3 Selenium 2.11.1  
OS:         GNU/Linux Gentoo Kernel 3.1.0-gentoo-r1

Ответ 1

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

см. http://code.google.com/p/selenium/wiki/ChromeDriver для получения полной информации о том, как происходит подключение.

Edit:

Правильно, кажется, что ошибка в связываниях Python связана с чтением двоичного кода chromedriver из пути или переменной окружения. Кажется, если в вашем пути отсутствует хромированная решетка, вы должны передать ее в качестве аргумента конструктору.

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

Только Mac OSX

Более простой способ получить доступ (при условии, что у вас уже установлен homebrew, который вам следует, если нет, пойти первым и пусть доморощенный сделает вашу жизнь лучше), просто выполните следующую команду:

brew install chromedriver

Это должно помещать хромированный указатель на ваш путь, и все должно быть установлено.

Ответ 3

Для Linux

  • Убедитесь, что установлена ​​последняя версия chrome brwoser- > chromium-browser -version
  • Если нет, установите последнюю версию chrome sudo apt-get install chromium-browser
  • получить соответствующую версию драйвера chrome из здесь
  • Разархивируйте chromedriver.zip
  • Переместите файл в каталог /usr/bin sudo mv chromedriver /usr/bin
  • Перейти в /usr/bin каталог cd /usr/bin
  • Теперь вам нужно запустить что-то вроде sudo chmod a+x chromedriver, чтобы отметить его исполняемый файл.
  • Наконец, вы можете выполнить код.

    import os
    from selenium import webdriver
    from pyvirtualdisplay import Display
    
    display = Display(visible=0, size=(800, 600))
    display.start()
    driver = webdriver.Chrome()
    driver.get("http://www.google.com")
    print driver.page_source.encode('utf-8')
    driver.quit()
    display.stop()
    

Ответ 4

Для окон

Загрузите webdriver из:

http://chromedriver.storage.googleapis.com/2.9/chromedriver_win32.zip

или

загрузите последний хромированный рекордер из здесь

Вставьте файл chromedriver.exe в папку "C:\Python27\Scripts".

Теперь это должно работать.

from selenium import webdriver
driver = webdriver.Chrome()

Ответ 5

Для окон, пожалуйста, введите chromedriver.exe под <Install Dir>/Python27/Scripts/

Ответ 6

Для 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

Надеюсь, это будет полезно.

Ответ 7

Есть два способа запуска тестов Selenium python в 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()