API - 使用Default对象 - 基础篇
在编写Spider Studio脚本时, Default对象是最常用最重要的一个, 其类型定义如下:
Webus3.Spider.Controls.JQueryBrowser Default;
下面介绍它的基本用法:
1. Navigate
void Navigate(string urlString)
使浏览器打开指定urlString指定的网页.
2. Ready
void Ready()
主页面加载完成即返回. 如果页面采用ajax进行异步加载, Ready不会刻意等待所有ajax数据加载完成, 此时请用 bool Ready(string jqueryExpression).
3. Ready - 针对ajax
bool Ready(string jqueryExpression)
和普通Ready相比, 此重载方法将会判断 jqueryExpression 指定的页面节点是否存在, 如果不存在则等待, 如果存在则立即返回. 它可以用于Ajax的场景, 比如某个新闻页面的评论节点 #comment 是动态加载的, 我们可以利用
Ready("#comment") 来控制脚本等待到评论成功加载之后才继续运行.
4. SelectNodes / SelectSingleNode
List<JQueryContext> SelectNodes(string jQueryExpression)
JQueryContext SelectSingleNode(string jQueryExpression)
这两个方法是 Spider Studio 中出镜率最高的API. 它们的作用是利用JQuery在页面选择节点, 并以JQueryContext的形式返回.
下面通过一系列例子来说明如何使用:
4.1 获取页面所有链接
Default.SelectNodes("a");
4.2 获取ID为 #name 的节点
Default.SelectSingleNode("#name");
4.3 获取样式为 class1 的 div
Default.SelectNodes("div.class1");
4.4 获取 #name 节点下面所有的链接
Default.SelectNodes("#name a");
4.5 获取包含 "下一页" 的链接
Default.SelectSingleNode("a:contains(\"下一页\")");
更多JQuery语法请参见: http://api.jquery.com/category/selectors/
5. JQueryContext的基本用法
JQueryContext是一个包含了JQuery上下文的节点. 我们可以用它完成页面模拟操作, 或者在它的有效范围内继续用JQuery定位子节点.
5.1 模拟操作:
void Click();
void DoubleClick();
void Show();
void Hide();
void KeyPress();
void KeyDown();
void KeyUp();
顾名思义, 就不用多解释了.
5.2 获取和设置属性
string Html(); //获取innerHtml
void Html(string html); //设置innerHtml
string Text(); //获取innerText
void Text(string text); //设置innerText
string Attr(string name); //根据属性名获取属性值
void Attr(string name, string value); //设置属性
5.3 JQueryContext上的Selector
JQueryContext SelectSingleNode(string jqueryExpression);
List<JQueryContext> SelectNodes(string jqueryExpression);
JQueryContext Next();
List<JQueryContext> NextAll();
SelectSingleNode / SelectNodes 和上面一样, 就不用多说了.
Next - 后一个同级节点
NextAll - 后面所有的同级节点
API - 使用Default对象 - 基础篇的更多相关文章
- rcGIS API for JavaScript之基础篇(一)
ArcGIS API for JavaScript之基础篇(一)上一篇文章介绍了ArcGIS 10.4的安装指南也包含了所需要资源,需要的同学可以去公众号中查找.最近几天学习了2D地图.3D地图以及图 ...
- java类与对象基础篇
java面向对象基础篇 面向对象程序设计(Object Oriented Proframming ,OOP) 面向对象的本质是:以类的方式组织代码,以对象的方式组织(封装)数据. 面向对象的核心思想是 ...
- day6-面向对象基础篇
一.面向对象引子及概念 结合编程的一些理论知识和实践,可以总结出目前存在以下编程模式: 1. 面向过程 按照业务逻辑和实现过程步骤来逐步垒代码,代码编写的逻辑即对应于实际实现的步骤过程,核心是过程两个 ...
- py---------面向对象基础篇
引子 你现在是一家游戏公司的开发人员,现在你需要开发一款叫做<人猫大战>的小游戏,你就思考呀,人猫大战,那至少需要两个角色,一个是人,一个是猫,且人和猫有不同的技能,比如人拿棍打狗,狗可以 ...
- laravel JWTAuth实现api接口鉴权(基础篇)
官网:https://jwt-auth.readthedocs.io 参考:https://learnku.com/articles/10885/full-use-of-jwt#99529f 1.to ...
- ASP.NET Web API 基础篇1
ASP.NET Web API 直到我膝盖中了一箭[1]基础篇 无题 蓦然回首,那些年,我竟然一直很二. 小时候,读武侠小说的时候,看到那些猪脚,常常会产生一种代入感,幻想自己也会遭遇某种奇遇,遇到悬 ...
- VBS基础篇 - 对象(1) - Class对象
VBS基础篇 - 对象(1) - Class对象 相信对JAVA有一定了解的朋友一定对类这个名词不陌生,但是大家可能没有想过在VBS中使用Class类吧,其实Class类在自动化测试中是相当常用的 ...
- 我拖拖拖--H5拖放API基础篇
不要搞错,本文不是讲如何拖地的.看过<javascript精粹>朋友应该知道,他实现拖放的过程比较复杂,现在时代不同了,我们用H5的新的拖放API就能非常方便的实现拖放效果了.最近在园子见 ...
- VBS基础篇 - 对象(3) - FileSystemObject对象
VBS基础篇 - 对象(3) - FileSystemObject对象 文件系统是所有操作系统最重要的部分之一,脚本经常会需要对文件及文件夹进行访问和管理,在Vbs中对桌面和文件系统进行访问的顶级 ...
随机推荐
- Event.RESIZE 的事件不触发
stage.scaleMode=StageScaleMode.NO_SCALE;(或者设置其他缩放模式,如EXACT_FIT等): 如果没有设置 stage的缩放模式的话, stage.addEv ...
- [Transducer] Make Transducer works for Iteratable collection and Object
We've seen how we can transduce from arrays or other iterables, but plain objects aren't iterable in ...
- [AngularJS] $scope.$watch
/** * Created by Answer1215 on 11/13/2014. */ function MainCtrl($scope){ function isLongEnough (pwd) ...
- 初识 NoSQL Databases RethinkDB
初识 NoSQL Databases RethinkDB rethinkDB所有数据都是基于 json的Document; 官网:http://rethinkdb.com/ github: https ...
- unity3d 自带截屏
Application.CaptureScreenshot("Screenshot.png"); 截屏后的文件所在路径:Application.persistentDataPath
- 设计模式 - 模板方法模式(template method pattern) 具体解释
模板方法模式(template method pattern) 详细解释 本文地址: http://blog.csdn.net/caroline_wendy 模板方法模式(template metho ...
- AjaxAnyWhere 实现页面局部刷新,局部分页
这个比較jquery.单纯ajax异步简单多了.不多说了直接上代码. 须要引入:ajaxanywhere-1.2.1.jar (最新)和 /ajaxAnyWhereDemo/WebRoot/js/aa ...
- Tomcat中配置MySQL数据库连接池
Web开发中与数据库的连接是必不可少的,而数据库连接池技术很好的优化了动态页与数据库的连接,相比单个连接数据库连接池节省了很大的资源.用一个通俗的比喻:如果一个人洗澡需花一桶水,那一百个人就要花一百桶 ...
- 数据库选型之MySQL(多线程并发)
刘勇 Email: lyssym@sina.com 本博客记录作者在工作与研究中所经历的点滴,一方面给自己的工作与生活留下印记,另一方面若是能对大家有所帮助,则幸甚至哉矣! 简介 鉴于高频中心库 ...
- javascript通用函数库
/* -------------- 函数检索 -------------- trim函数: trim() lTrim() rTrim() 校验字符串是否 ...