Запуск привязок 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()