Python: Selenium with PhantomJs to capture ScreenshotsMar 21, 2017 · 2 min read · 2 comments
Selenium is a portable software-testing framework for web applications. Selenium provides a record/playback tool for authoring tests without the need to learn a test scripting language (Selenium IDE)
Using the combination of selenium and PhantomJs can give you a way to capture screenshots and use it in your choices.
Table of contents
Installation of PhantomJs ︎
For that let’s install PhantomJs in your computer. For Ubuntu/Debian platform, you can use like this:
>sudo apt-get install phantomjs
>sudo apt-get update >sudo apt-get install build-essential chrpath libssl-dev libxft-dev >sudo apt-get install libfreetype6 libfreetype6-dev >sudo apt-get install libfontconfig1 libfontconfig1-dev >cd ~ >wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2 >sudo tar xvjf phantomjs-2.1.1-linux-x86_64.tar.bz2 >sudo mv phantomjs-2.1.1-linux-x86_64 /usr/local/share >sudo ln -sf /usr/local/share/phantomjs-2.1.1-linux-x86_64/bin/phantomjs /usr/local/bin
>npm install phantomjs2
Installation of Selenium ︎
Install selenium by using
pip install selenium
Let’s go to coding:
from selenium import webdriver # Import selenium web driver driver = webdriver.PhantomJs() # PhantomJs webdriver driver.get('https://google.com') driver.save_screenshot('google.jpg')
Done! your image will be saved as google.jpg.
Using with Django ︎
Suppose you want to store the image in Django ImageFile, you can use the following code:
screenshot = driver.screenshot_as_base64() # binary image my_model = MyModel() my_model.image_field = ContentFile(screenshot, 'google.jpg') MyModel.save()
That’s all for now. Cheers!!
This is no longer maintained. Use it at your own risk. Django Encrypt File is a simple Library which can be used to …
Who hasn’t heard PIL? It’s an image processing library made by python (Python Image Library). Pillow is an …