How do I generate a png file w/ selenium/phantomjs from a string?
phantomjs, python, selenium
Solution
PhantomJS
var page = require('webpage').create();
page.open('http://github.com/', function () {
page.render('github.png');
phantom.exit();
});
This is how to get a screenshot in phantomJS, I've used phantomJS for some time now.
You can find more information here.
Selenium
driver = webdriver.Chrome();
driver.get('http://www.google.com');
driver.save_screenshot('out.png');
driver.quit();
Hope this helps.
Problem
I am using selenium/phantomjs to create png files of html in python. Is there a way to generate the png from an html string or filehandle (instead of a website)? I've searched through the selenium docs and googled but couldn't find an answer. I have: ``` htmlString = '<html><body><div style="background-color:red;height:500px;width:500px;">This is a png</div></body></html>' myFile = 'tmp.html' f = open(myFile,'w') f.write(htmlString) from selenium import webdriver driver = webdriver.PhantomJS() driver.set_window_size(1024, 768) #driver.get('https://google.com/') # this works fine driver.get(myFile) # passing the file name or htmlString doesn't work...creates a blank png with nothing driver.save_screenshot('screen.png') driver.quit() print "png file created" ```