dla moich badań, zrobiłem pewne modyfikacje kodu źródłowego w firefoxie i sam go zbudowałem. Aby zautomatyzować testowanie, zdecydowałem się użyć Selenium, ale niestety, mój nowo zbudowany Firefox wydaje się nie obsługiwać Selenium.Firefox Build nie działa z Selenium
Zrobiłem następujące:
from selenium import webdriver
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
binary = FirefoxBinary("/path/to/firefox/binary")
d = webdriver.Firefox(firefox_binary=binary)
d.get("http://www.google.de")
przeglądarki Firefox nie otwiera i reaguje (mogę wpisać na stronie internetowej w pasku wyszukiwania). Ale po jakimś czasie, skrypt Pythona wywala się z następującym komunikatem o błędzie:
Traceback (most recent call last):
File "firefox.py", line 7, in <module>
d = webdriver.Firefox(firefox_binary=binary)
File "/usr/local/lib/python3.4/dist-packages/selenium/webdriver/firefox/webdriver.py", line 59, in __init__
self.binary, timeout),
File "/usr/local/lib/python3.4/dist-packages/selenium/webdriver/firefox/extension_connection.py", line 47, in __init__
self.binary.launch_browser(self.profile)
File "/usr/local/lib/python3.4/dist-packages/selenium/webdriver/firefox/firefox_binary.py", line 66, in launch_browser
self._wait_until_connectable()
File "/usr/local/lib/python3.4/dist-packages/selenium/webdriver/firefox/firefox_binary.py", line 109, in _wait_until_connectable
raise WebDriverException("Can't load the profile. Profile "
selenium.common.exceptions.WebDriverException: Message: Can't load the profile. Profile Dir: %s If you specified a log_file in the FirefoxBinary constructor, check it for details.
Zrobiłem Google, że komunikat o błędzie i większość rozwiązań sugeruje, że należy aktualizować selen, ponieważ nie obsługuje wersji Firefoksa używany. Niestety, zainstalowałem najnowszą wersję selenu (2.44.0) i użyłem nawet starszej wersji firefox (wersja 33), aby wykluczyć ten punkt.
Upewniłem się również, że moje modyfikacje kodu nie powodują awarii przez zbudowanie czystego, niezmodyfikowanego Firefoxa. Selen też nie działa z tym firefoxem.
Jeśli nie określę pliku binarnego firefox i niech Selenium używa zainstalowanej przeglądarki Firefox, wszystko działa poprawnie. Zgaduję więc, że coś jest nie tak z budową firefox, co zrobiłem dokładnie tak, jak wspomniano w dokumentacji online (np. ./mach build).
Czy ktoś ma pomysł, jaki może być mój błąd? Każda pomoc jest bardzo cenna!
Niektóre informacje setup:
- Firefox 33
- Selen 2.44.0
- Python 3.4 (również próbował 2,7, nie działa albo)
- Firefox budować z Ubuntu 14.04
Czy jest to sporadyczny problem lub spójne? Widzę to również, ale tylko czasami (FF34, selenium2.44.0, python2.7, ubuntu12.04). Uważam, że to dziwne, że to się dzieje z twoim scenariuszem. UWAGA: domyślny profil zostanie zapisany w katalogu/tmp, chyba że wybierzesz nowy, więc upewnij się, że nie masz żadnych skryptów ani niczego, co mogłoby usunąć profil. – Justin