我经常会见PhantomJS to run headless browser
,headless browser
。
除此之外,我还想清楚地了解这些浏览器功能:
答案 0 :(得分:2)
根据定义,无头浏览器是没有图形用户界面(GUI)的Web浏览器。
通常情况下,使用带有GUI的浏览器通过鼠标和键盘完成与网站的交互,而大多数无头浏览器提供操作页面/ DOM,下载资源等的API。因此,而不是,例如,实际点击使用鼠标元素,无头浏览器允许您按代码单击元素。
使用PhantomJS与页面交互的示例:
page.evaluate(function() {
//Fill in form on page
document.getElementById('Name').value = 'John Doe';
document.getElementById('Email').value = 'john.doe@john.doe';
//Submit
$('#SubmitButton').click();
});
标题,本地存储和Cookie在大多数无头浏览器中的工作方式与在具有GUI的常规浏览器中的实现方式相同。 PhantomJS和HtmlUnit支持所有这些功能。
在PhantomJS中,您还可以添加自己的Cookie。例如,您可以从chrome复制cookie,并在运行时以编程方式将其添加到phantomjs浏览器中。它将自动添加到特定域的页面请求中。
在加载之前向页面添加Cookie
var webPage = require('webpage');
var page = webPage.create();
phantom.addCookie({
'name' : 'Valid-Cookie-Name', /* required property */
'value' : 'Valid-Cookie-Value', /* required property */
'domain' : 'localhost',
'path' : '/', /* required property */
'httponly' : false,
'secure' : false,
'expires' : (new Date()).getTime() + (1000 * 60 * 60) /* <-- expires in 1 hour */
});
page.open('localhost', function (status) {
//Cookie automatically added to request headers for localhost
...
});
对于使用PhantomJS的一些可运行示例,请参阅The phantomjs examples page