页面自动化

因为可以操纵负载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, width: 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

浏览器尺寸的如下形式:

{
    width: 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
时间: 2024-07-30 10:04:56

页面自动化的相关文章

页面自动化分析(一)

如果一个页面的webDriver自动化脚本编写好之后,只能执行一次,或者执行的过程是百分百正确的话,那么这样的脚本是不是就没有什么意义存在了呢? 最近正好有个机会让我用selenium+java做页面的自动化,因此有此一问. 一.页面结构分析(管理系统) 第一个页面主要功能是创建为主,元素包括1个复选框,2-3个input文本输入框,2个textArea长文本输入框,2-3个下拉单选. 类似的,可以用一个登陆页面做类比,提交form表单的数据到数据库显示. 二.该页面如何做到自动化测试 私以为最

页面自动化时安全证书弹出框的问题。

安全证书弹出框是网页自动化测试遇到的最头疼的问题了,没有之一.凡是能通过webdriver定位到并解决的问题都不是问题,显然安全证书弹出框不在此列.所以以前我都是在本地写自动化用例,然后启动的时候设置等待5秒,这5秒就是给我反应时间去点击证书的取消按钮.如今为了做成一个小框架,能和其他测试系统对接,并且让用户可以在其他系统通过调接口的方式并发完成多个系统页面的自动化,这个问题是不得不解决了. 幸好已经解决了,以chromeDriver为例,不是网上所谓的设置ChromeOptions,那根本就没

前端自动化开发工作流

1. 前端自动化工作流简介 每种项目都有自己特定的开发流程.工作流程.从需求分析.设计.编码.测试.发布,一个整个开发流程中,会根据不同的情况形成自己独特的步骤和流程.一个工作流的过程不是一开始就固定的,而是随着项目的深入而不断地改进,期间甚至会形成一些工具.例如当年大神们在Linux写C语言,觉得每次编译好多文件好麻烦,就发明了makefile.不同代码的管理好麻烦,然后就发明了git.SVN等等. 一个工作流程的好坏会影响你开发的效率.开发的流程程度,然后间接影响心情,打击编码积极性.所以我

webpack+react多页面开发(二)-终极架构

webpack4+react16多页面架构 webpack在单页面打包上应用广泛,以create-react-app为首的脚手架众多,单页面打包通常指的是将业务js,css打包到同一个html文件中,整个项目只有一个html文件入口,但也有许多业务需要多个页面不同的入口,比如不同的h5活动,或者需要支持seo的官方网站,都需要多个不同的html.webpack-react-multi-page架构让你可以在多页面在项目开发中自动化打包新创建页面并保证每个页面都可以热更新 ,build打包后有清晰

python网络爬虫学习(六)利用Pyspider+Phantomjs爬取淘宝模特图片

本篇博文在编写时参考了http://cuiqingcai.com/2652.html,向作者表示感谢 一.新的问题与工具 平时在淘宝上剁手的时候,总是会看到各种各样的模特.由于自己就读于一所男女比例三比一的工科院校--写代码之余看看美女也是极好的放松方式.但一张一张点右键–另存为又显得太过麻烦而且不切实际,毕竟图片太多了.于是,我开始考虑用万能的python来解决问题. 我们先看看淘女郎页面的URL,https://mm.taobao.com/json/request_top_list.htm?

Python爬虫进阶二之PySpider框架安装配置

关于 首先,在此附上项目的地址,以及官方文档 PySpider 官方文档 安装 1. pip 首先确保你已经安装了pip,若没有安装,请参照 pip安装 2. phantomjs PhantomJS 是一个基于 WebKit 的服务器端 JavaScript API.它全面支持web而不需浏览器支持,其快速.原生支持各种Web标准:DOM 处理.CSS 选择器.JSON.Canvas 和 SVG. PhantomJS 可以用于页面自动化.网络监测.网页截屏以及无界面测试等. 安装 以上附有官方安

Python爬虫利器四之PhantomJS的用法

前言 大家有没有发现之前我们写的爬虫都有一个共性,就是只能爬取单纯的html代码,如果页面是JS渲染的该怎么办呢?如果我们单纯去分析一个个后台的请求,手动去摸索JS渲染的到的一些结果,那简直没天理了.所以,我们需要有一些好用的工具来帮助我们像浏览器一样渲染JS处理的页面. 其中有一个比较常用的工具,那就是 PhantomJS Full web stack No browser required PhantomJS is a headless WebKit scriptable with a Ja

对于框架设计的一点总结

今天看了robot framework作者写的关于框架搭建思想的一篇文章,我突然认识到我找到组织了.文章原文 我之前的遇到的难题记录在这里 ,页面自动化分析(1)我当时的解决办法是用组件抽象,txt纯文本封装测试数据此时看来和 文章的作者思路是一致的. 文章中这样提到,将数据与测试脚本分离,基于模块化的测试库,一个驱动脚本可以执行多个类似用例,这样非常容易建立新测试 并且提到了其中的弱点在于不同类型的测试仍然需要新的脚本,建立初始解析器和重用组件需要花人力. 但是我在搭建框架的过程中却遇到的是不

Python pyspider 安装与开发

PySpider 简介 PySpider是一个国人编写的强大的网络爬虫系统并带有强大的WebUI.采用Python语言编写,分布式架构,支持多种数据库后端,强大的WebUI支持脚本编辑器.任务监视器,项目管理器以及结果查看器. PySpider 来源于以前做的一个垂直搜索引擎使用的爬虫后端.我们需要从200个站点(由于站点失效,不是都同时啦,同时有100+在跑吧)采集数据,并要求在5分钟内将对方网站的更新更新到库中.所以,灵活的抓取控制是必须的. 同时,由于100个站点,每天都可能会有站点失效或