Использование драйвера FireFox (geckodriver) - PullRequest
1 голос
/ 03 марта 2020

Вот мой код

browser = webdriver.Firefox('C:\\Users\\ojadi\\Downloads\\geckodriver-v0.26.0-win64\\geckodriver.exe')
browser.get('https://www.google.co.uk/')

Вот ошибка, которую я продолжаю получать

The directory name is invalid: 'C:\\Users\\ojadi\\Downloads\\geckodriver-v0.26.0-win64\\geckodriver.exe'

Здесь я поставил драйвер

C : \ Users \ ojadi \ Downloads \ geckodriver-v0.26.0-win64

Пожалуйста, помогите мне,

Ответы [ 3 ]

2 голосов
/ 04 марта 2020

Первый, безымянный параметр при использовании webdriver.Firefox() равен firefox_profile, который принимает либо FirefoxProfile объект, либо строку. Если это строка, вы указываете языковым привязкам Python, какой каталог вы хотите использовать в качестве шаблона для анонимного профиля, используемого при запуске Firefox.

. В других ответах вы могли попытаться использовать firefox_binary аргумент. Это неверно, так как это аргумент, указывающий путь к двоичному файлу Firefox, а не двоичному geckodriver .

Аргумент, который вы на самом деле хотите использовать: executable_path, который является аргументом, который относится к местоположению двоичного файла geckodriver. Конечно, вам нужно что-то вроде следующего:

browser = webdriver.Firefox(executable_path='C:\\Users\\ojadi\\Downloads\\geckodriver-v0.26.0-win64\\geckodriver.exe')

Теперь, если вам также необходимо указать путь к заданной c Firefox двоичной установке, вы можете указать как firefox_binary, так и executable_path.

0 голосов
/ 13 марта 2020

Я только что запустил этот код.

from selenium import webdriver
from selenium.webdriver.common.keys import Keys


driver = webdriver.Firefox(executable_path=r'C:\Selenium\geckodriver.exe')
driver.set_page_load_timeout(60)
driver.get("https://www.msnbc.com/")

continue_link = driver.find_element_by_tag_name('a')
elems = driver.find_elements_by_xpath("//a[@href]")
for elem in elems:
    print(elem.get_attribute("href"))

Я получил этот результат.

https://www.msnbc.com/
https://www.msnbc.com/listen
https://www.msnbc.com/live
https://www.nbcnews.com/
https://www.today.com/
https://www.msnbc.com/
https://www.msnbc.com/rachel-maddow-show
https://www.msnbc.com/morning-joe
https://www.msnbc.com/deadline-white-house
https://www.msnbc.com/mtp-daily
https://www.msnbc.com/the-beat-with-ari-melber
https://www.msnbc.com/all

etc., etc., etc.

https://www.msnbc.com/
https://www.nbcnews.com/pages/about-nbc-news-digital
https://www.msnbc.com/help
https://www.nbcunicareers.com/
https://www.msnbcstore.com/?cid=MSNBCSTRE
https://www.nbcuniversal.com/privacy/?brandA=MSNBC&intake=MSNBC
https://www.nbcuniversal.com/privacy/notrtoo/?brandA=MSNBC&intake=MSNBC
https://www.msnbc.com/terms-of-service
https://www.msnbc.com/closed-captioning
https://www.msnbc.com/transcripts
https://www.msnbc.com/advertising-and-partnerships
http://info.evidon.com/pub_info/1196?v=1
https://www.nbcnews.com/
https://www.msnbc.com/
https://www.today.com/

Убедитесь, что вы загружаете соответствующий (32-битный или 64-битный) geckodriver с ссылка ниже.

https://github.com/mozilla/geckodriver/releases

0 голосов
/ 03 марта 2020

попробуйте заменить вашу строку следующим:

browser = webdriver.Firefox(r'C:\Users\ojadi\Downloads\geckodriver-v0.26.0-win64\geckodriver.exe')
...