我希望有一个在我的linux服务器上作为守护进程运行的wish浏览器。浏览器应该有一个应用程序接口,这样我就可以编写一个脚本,将这些命令发送到浏览器(伪代码):
set viewport size to 1024x768
turn javascript on
turn cookies off
enable loading of images
load http://facebook.com
wait for execution of javascript (max 10 sec)
scroll down 200 pixels
move mouse-pointer to 280,500 (relative to viewport)
wait again for execution of javascript (max 10 sec)
get browser content as DOM (encoded as tree of JSON object)
store viewport content as image to the file system
emulate click'n'drag from x,y=10,15 to 20,70 (coordinates relative to element with id="abc") 有用于将网页的html代码加载到字符串中的解决方案(例如perl模块),也有将html字符串转换为DOM对象树的解决方案。加载嵌入的图像和以下链接也很容易。
但是我没有找到能够执行javascript的解决方案(我也不想写一个javascript仿真器)。有许多网站使用AJAX等技术来按需加载内容,我发现通过在服务器上运行脚本来获取这些内容真的很难。
并且我不知道我应该做什么来生成网页的屏幕截图而不在GUI上显示该网页。我希望在没有GUI的服务器上有一个脚本来为我做这件事。
所有常见的web浏览器都可以执行javascript,并且它们还可以在图形视区中显示web内容。但是,是否也有浏览器可以作为守护进程来执行此操作,该守护进程由外部脚本使用定义良好的API控制?也许firefox有一个插件可以把它变成一个守护进程?
发布于 2014-04-29 13:52:06
我一直在一个maven作业中使用selenium-firefox驱动程序,该作业通过Jenkins在通过Windows服务连接的远程从站上运行。我见过process explorer启动firefox进程,执行selenium自动化,然后退出。
在您陈述的需求中,我不确定selenium是否支持JSON编码。但它可能会做其他所有事情,而且让JSON部分工作起来也很容易。
https://stackoverflow.com/questions/23321792
复制相似问题