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中对桌面和文件系统进行访问的顶级 ...
随机推荐
- MatLab2012b/MatLab2013b 分类器大全(svm,knn,随机森林等)
train_data是训练特征数据, train_label是分类标签.Predict_label是预测的标签.MatLab训练数据, 得到语义标签向量 Scores(概率输出). 1.逻辑回归(多项 ...
- [Functional Programming] Monad
Before we introduce what is Monad, first let's recap what is a pointed functor: A pointed functor is ...
- [React] Safely setState on a Mounted React Component through the useEffect Hook
In the class version of this component, we had a method called safeSetState which would check whethe ...
- Cookie 与 sessonID
Http协议是无状态的,即服务端仅仅能通过你本次提交的http请求来给出响应. cookie可用于服务端标记client.如登陆过后免输password,购物车实现等. 1.cookie Cookie ...
- nginx的 CPU參数worker_processes和worker_cpu_affinity使用说明
Nginx默认没有开启利用多核CPU,我们能够通过添加worker_cpu_affinity配置參数来充分利用多核CPU.CPU是任务处理,计算最关键的资源,CPU核越多.性能就越好. worker_ ...
- html5图表
http://www.html5tricks.com/tag/html5图表
- STL - 迭代器 - 安插型迭代器
list<, , , , , , , , }; cout << "** collection 1: **" << endl; ContainerUti ...
- iOS 7 二维码的生成
//二维码生成 //UIImageView *theImageView = [[UIImageView alloc]init]; //[self.view addSubview:theImageVie ...
- UNIX网络编程读书笔记:套接口选项
概述 有很多方法来获取和设置影响套接口的选项: getsockopt和setsockopt函数 fcntl函数 ioctl函数 getsockopt和setsockopt函数 这两个函数仅用于套接口. ...
- Android应用开发相关下载资源(2014/12/14更新)
官方终于发布了Android Studio正式版,Android Studio将会成为推荐使用的主要Android开发工具. (1)Android SDK (Android SDK主安装包,包含SDK ...