页面自动化

因为可以操纵负载phantomjs和web页面,各个页面进行完善的自动化。

DOM操作

由于这个脚本可以被执行,就像它是运行在Web浏览器标准DOM脚本å’ŒCSS选择器很好的工作。

下列所述useragent.js该实施例证明阅读textContent元素的属性原我信息分隔符myagent

var page = require('webpage').create();
console.log('The default user agent is ' + page.settings.userAgent);
page.settings.userAgent = 'SpecialAgent';
page.open('http://www.httpuseragent.org', function(status) {
  if (status !== 'success') {
    console.log('Unable to access network');
  } else {
    var ua = page.evaluate(function() {
      return document.getElementById('myagent').textContent;
    });
    console.log(ua);
  }
  phantom.exit();
});

上述例子还演示了一种方式来定制用户代理在远程Web服务器。

使用jQuery和其他库

作为1.6的版本,则还能够包括使用jQuerypage.includejs到页面如下:

var page = require('webpage').create();
page.open('http://www.sample.com', function() {
  page.includeJs("http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js", function() {
    page.evaluate(function() {
      $("button").click();
    });
    phantom.exit()
  });
});

上面的片段会打开一个网页,包含了jQuery库的页面,然后单击所有的按钮,使用jQuery。然后离开该Web页面。确信page.includejsExit语句内或者它可能过早地退出之前的JavaScript代码。

网页实例

假设你有一个网页的实例:

var page = require('webpage').create();

可提取和执行?

属性

page.canGoForward -> boolean

如果window.history。他们必须有效行动

page.canGoBack -> boolean

如果window.history。回去也是一个有效的行动

  • page.clipRect -> object

可以设置成以下形式:

{ top: 0, left: 0,  1024, height: 768 }

它规定了该部分屏幕将在屏幕截图

page.content -> string

整个HTML页面内容

page.cookies -> object

在饼干上。他们有这样的形式:

{
    'name' : 'Valid-Cookie-Name',
    'value' : 'Valid-Cookie-Value',
    'domain' : 'localhost',
    'path' : '/foo',
    'httponly' : true,
    'secure' : false
}
page.customHeaders -> object

要做的事情

page.event -> object

含有改性剂和钥匙要做的事情

page.libraryPath -> string

库路径的电流,通常是脚本的目录:从

page.loading -> boolean

如果页面已经被加载或不

  • page.loadingProgress -> number

在已加载百分比。装置100,该页面被加载。

page.navigationLocked -> boolean

要做的事情

page.offlineStoragePath -> string Where the sqlite3 localstorage and other offline data are stored.

page.offlineStorageQuota, ‘number

在字节的配额,可脱机保存

page.paperSize -> object

但现实生活中类似cliprect大小如A4纸。在示例性的深度检查这个

page.plainText -> string

在纯文本元素的页面

page.scrollPosition -> object

与当前滚动位置的对象的以下形式:

{
    left: 0
    top: 0
}
page.settings -> object

该设置仅对当前的UserAgent串page.settings。特别经理人UserAgent=′′;

page.title -> string

页面标题

page.url -> string

页面的URL

page.viewportSize -> object

浏览器尺寸的如下形式:

{
     1024,
    height: 768
}
page.windowName -> string

浏览器的名称指定的窗口Wm。

page.zoomFactor -> number

缩放因子1的正常放大。

函数

  • page.childframescount
  • page.childframesname
  • page.close
  • page.currentframename
  • page.deletelater
  • page.destroyed
  • page.evaluate
  • page.initialized
  • page.injectjs
  • page.javascriptalertsent
  • page.javascriptconsolemessagesent
  • page.loadfinished
  • page.loadstarted
  • page.openurl
  • page.release
  • page.render
  • page.resourceerror
  • page.resourcereceived
  • page.resourcerequested
  • page.uploadfile
  • page.sendevent
  • page.setcontent
  • page.switchtochildframe
  • page.switchtomainframe
  • page.switchtoparentframe
  • page.addcookie
  • page.deletecookie
  • page.clearcookies

回调处理程序/

列表中的所有页面的事件:

  • oninitialized
  • onloadstarted
  • onloadfinished
  • onurlchanged
  • onnavigationrequested
  • onrepaintrequested
  • onresourcerequested
  • onresourcereceived
  • onresourceerror
  • onresourcetimeout
  • onalert
  • onconsolemessage
  • onclosing
原文地址:https://www.cnblogs.com/menu/p/6848655.html