Is there a way to use PhantomJS in Python?
phantomjs, python
Solution
The easiest way to use PhantomJS in python is via Selenium. The simplest installation method is
- Install NodeJS
- Using Node's package manager install phantomjs: `npm -g install phantomjs-prebuilt`
- install selenium (in your virtualenv, if you are using that)
After installation, you may use phantom as simple as:
from selenium import webdriver
driver = webdriver.PhantomJS() # or add to your PATH
driver.set_window_size(1024, 768) # optional
driver.get('https://google.com/')
driver.save_screenshot('screen.png') # save a screenshot to disk
sbtn = driver.find_element_by_css_selector('button.gbqfba')
sbtn.click()
If your system path environment variable isn't set correctly, you'll need to specify the exact path as an argument to `webdriver.PhantomJS()`. Replace this:
driver = webdriver.PhantomJS() # or add to your PATH
... with the following:
driver = webdriver.PhantomJS(executable_path='/usr/local/lib/node_modules/phantomjs/lib/phantom/bin/phantomjs')
References:
- http://selenium-python.readthedocs.io/
- How do I set a proxy for phantomjs/ghostdriver in python webdriver?
- https://dzone.com/articles/python-testing-phantomjs
Problem
I want to use PhantomJS in Python. I googled this problem but couldn't find proper solutions. I find `os.popen()` may be a good choice. But I couldn't pass some arguments to it. Using `subprocess.Popen()` may be a proper solution for now. I want to know whether there's a better solution or not. Is there a way to use PhantomJS in Python?