Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Selenium with GhostDriver in Python on Windows

This is embarrassing to ask because it seems like something with so slim chance of error. I wouldn't think this would be difficult, but I've been plugging away at this for almost 3 hours now and it's giving me a headache. I've read several dozen stackoverflow threads and Google threads.

I've installed PhantomJS, added it to my System Variables PATH, and it works properly in the command line. I also installed Selenium earlier with easy_install.

The error I get is:

__init__    C:\Python27\lib\site-packages\selenium-2.39.0-py2.7.egg\selenium\webdriver\phantomjs\webdriver.py   50      

start   C:\Python27\lib\site-packages\selenium-2.39.0-py2.7.egg\selenium\webdriver\phantomjs\service.py 66      

WebDriverException: Message: 'Unable to start phantomjs with ghostdriver.' ; Screenshot: available via screen               

Here's my code:

from selenium import webdriver

driver = webdriver.PhantomJS(executable_path="C:\Python27\misc\phantomjs\phantomjs.exe")

I also tried:

from selenium import webdriver

driver = webdriver.PhantomJS()

I get the same error message. This has to be something simple that I'm doing wrong. I'd appreciate any comments or answers.

Windows 7 64 bit Python 2.7

like image 524
User Avatar asked Feb 14 '14 00:02

User


People also ask

Does Python 3.9 support Selenium?

Selenium 3 is incompatible with Python 3.9 #8762.

Can we integrate Selenium Webdriver with Python?

The Selenium test scripts can be written in any programming languages like Java, Python, C#, Ruby, Perl, as so on.

Does Selenium support PhantomJS?

Just like any other browsers with GUI interface (Firefox, IE, Chrome, etc.), for PhantomJS also, Selenium has a standard API to support the automation. The above code snippet launches Selenium official website on the PhantomJS browser and performs click operation on the download tab.


2 Answers

I had the same problem running Python 3.4 on Windows Server 2012 R2. PhantomJS was failing to create the ghostdriver.log file. I followed these steps that fixed it for me:

  • Made sure phantomjs.exe was not showing "Blocked" on the File Properties|Security tab, and ran it as standalone app to confirm.
  • Deleted an old copy of the ghostdriver.log file that was in the same directory.
  • Ran python REPL from the console while checking to see if the code that instantiated the driver was getting called successfully.

    browser = webdriver.PhantomJS(executable_path='phantomjs.exe', desired_capabilities=argdc, service_args=svc_args)
    
like image 35
Cahit Avatar answered Sep 24 '22 17:09

Cahit


This may have been a version issue for you, but since I just went through setting this up on my Windows 7 PC without issues I'm going to share my 'journey' here.

First of, I'm more used to the Mac/Linux Terminal and having the python package manager pip at my disposal is essential to me. After installing Python 2.7.8 and adding ;c:\Python27 to my PATH I noticed that pip isn't included with Python versions lower than 2.7.9, so I had to add it myself. Afterwards I added ;c:\Python27\Scripts to my PATH.

After that fetching the python package selenium was as easy as typing the following into the cmd:

pip install selenium

Then I downloaded the phantomjs-1.9.7-windows.zip from here, unzipped it and placed it here:

C:\Python27\misc\phantomjs-1.9.7-windows\phantomjs.exe

From there I had a working Python 2.7/Selenium Webdriver/PhantomJS example for Windows 7.

from selenium import webdriver
import os

phantomjs_path = "C:\Python27\misc\phantomjs-1.9.7-windows\phantomjs.exe"

browser = webdriver.PhantomJS(executable_path=phantomjs_path, service_log_path=os.path.devnull)
browser.set_window_size(1400, 1000)

browser.get("https://stackoverflow.com/")

print browser.title

Note that I added the argument service_log_path=os.path.devnull to the function webdriver.PhantomJS() to prevent PhantomJS from creating a ghostdriver.log in the directory of the python file being executed.

like image 95
Loknar Avatar answered Sep 21 '22 17:09

Loknar