2016-11-06 31 views
5

Uruchamianie Selenium lokalnie na kolbie. Korzystam ze sterownika PhantomJS. I poprzednio miał błędu ścieżki:WebDriverException: Wiadomość: Plik wykonywalny "phantomjs" może mieć nieprawidłowe uprawnienia.

selenium.common.exceptions.WebDriverException: Message: 'phantomjs' executable needs to be in PATH. 

Ale po znalezieniu się z innym pytaniem StackOverflow, dowiedziałem się, że muszę przejść ścieżkę środowiska jako parametr PhantomJS. Ścieżka, którą mam poniżej, jest ścieżką do folderu phantomJS w moim folderze środowiska wirtualnego.

driver = webdriver.PhantomJS(executable_path='/Users/MyAcc/Documents/MYWEBAPP/venv/lib/python3.5/site-packages/selenium/webdriver/phantomjs') 

Jednak uzyskać nowy kod błędu teraz:

selenium.common.exceptions.WebDriverException: Message: 'phantomjs' executable may have wrong permissions. 

Oto co mam kiedy sprawdzić uprawnienia do plików ścieżki.

total 40 
drwxr-xr-x 7 USER staff 238 Nov 6 00:07 . 
drwxr-xr-x 17 USER staff 578 Nov 6 00:03 .. 
[email protected] 1 USER staff 6148 Nov 6 00:07 .DS_Store 
-rw-r--r-- 1 USER staff 787 Oct 31 12:27 __init__.py 
drwxr-xr-x 5 USER staff 170 Oct 31 12:27 __pycache__ 
-rw-r--r-- 1 USER staff 2587 Oct 31 12:27 service.py 
-rw-r--r-- 1 USER staff 2934 Oct 31 12:27 webdriver.py 
+0

i jakie uprawnienia posiada ten plik, gdy katalogiem jest lista 'ls -al' -' rwxrwxrwx'? – furas

+0

'sumie personel 40' ' drwxr-xr-x 7 USER 238 listopadzie zespół 6 00:07 .' 'drwxr-xr-x 17 USER 578 06 listopada 00:03 ..' ' -RW-r --r - @ 1 USER staff 6148 6 listopada 00:07 .DS_Store' '-rw-r - r-- 1 USER staff 787 31 października 12:27 __init __. py' ' drwxr-xr-x 5 Personel USER 170 31 października 12:27 __pycache__'' '-rw-r - r-- 1 Personel UŻYTKOWNIKA 2587 31 października 12:27 service.py' ' -rw-r - r-- 1 Personel UŻYTKOWNIKA 2934 paź 31 12:27 webdriver.py' – Tahir

+0

Rozwiązałeś problem? Thasnk you –

Odpowiedz

0

executable_path = './phantomjs-2.1.1-linux-x86_64/bin/phantomjs'

service_log_path = './log/ghostdriver.log'

driver = webdriver.PhantomJS(executable_path=executable_path, service_log_path=service_log_path)

można wykorzystywać zarówno względnej ścieżki i ścieżki bezwzględnej.

0

selenium.common.exceptions.WebDriverException: Wiadomość: plik wykonywalny 'phantomjs' może mieć złe uprawnienia.

To błąd, bo phantomjs nie wykonać uprawnienie, o ile dla phantomjs - 2.1.1 - Linux - x86_64/bin/phantomjs dodać wykonać uprawnienia chmod u + x phantomjs

nadzieję możesz pomóc ty

+0

Witamy w Stack Overflow, nie publikuj odpowiedzi dwa razy, edytuj swoją pierwszą odpowiedź i zmieniaj tam, spędź trochę czasu czytając [jak napisać odpowiedź] (http://stackoverflow.com/help/how-to- odpowiedź). – Hizqeel

-1

O dziwo, dla mnie zostało to naprawione przez umieszczenie phantomjs w /usr/local/share i dodanie pewnych dowiązań symbolicznych. Śledziłem these steps:

  • przenieść folder phantomjs do /usr/local/share/:
    • sudo mv phantomjs-2.1.1-linux-x86_64.tar.bz2 /usr/local/share/.
  • tworzyć symboliczne linki:
    • sudo ln -s /usr/local/share/phantomjs-1.8.1-linux-x86_64 /usr/local/share/phantomjs
    • sudo ln -s /usr/local/share/phantomjs-1.8.1-linux-x86_64 /usr/local/share/phantomjs

Nie jestem ekspertem od Linuksa, więc nie wiem, dlaczego to robi różnicę. Jeśli ktoś chce zagrać, nie krępuj się.

1

Umieściłem plik phantomjs na /usr/local/bin i działało dobrze.

0

Napotkałem ten problem przed python + phanomjs. rozwiązanie: linux --- umieszczenie phantomjs w/usr/local/share; Windows --- umieszczanie phantomjs w/python/scripts. nadzieja pomaga

1

Cóż mam to rozwiązać za pomocą następującego kodu:

przeglądarce = webdriver.PhantomJS (executable_path = "/usr/local/Cellar/phantomjs/2.1.1/bin/phantomjs")

+0

działa również dla mnie w Windows 10. "phantomjs" na końcu to phantomjs.exe, a nie fold. – Renke