Selenium - 无头服务器拍摄的截图图像损坏
我正在使用selenium webdriver(Python版本)来在网页加载后拍摄图片。当我在本地电脑上打开一个页面并用Python脚本保存图片时,效果很好。然而,当我在服务器上运行这个脚本时,截图的效果就很糟糕——边缘可能被截掉,文字缺失,右侧的横幅可能被挤到下面,乱七八糟的等等。我甚至尝试过把窗口最大化。
driver.get(url)
driver.maximize_window()
time.sleep(4)
driver.save_screenshot('screen.png')
在服务器上,我不能以图形界面的方式打开Firefox,必须在运行selenium之前和之后手动启动/停止显示。
from pyvirtualdisplay.xvnc import XvncDisplay
display = XvncDisplay(rfbport='####')
display.start()
所以我在想,这可能和我的显示设置有关。
有没有人知道怎么解决这个问题?谢谢!
1 个回答
0
试试用chomium和chromedriver吧。对我来说很好用,虽然我没有遇到你说的问题。这只是个建议。
把chromedriver下载到/usr/local/bin这个文件夹,链接在这里:https://sites.google.com/a/chromium.org/chromedriver/downloads,别忘了运行这个命令:chmod a+x /usr/local/bin/chromedriver
,这样才能让它可以执行。
我参考了这个博客文章:http://coreygoldberg.blogspot.cz/2011/07/python-taking-browser-screenshots-with.html