[译文]casperjs使用说明-选择器

casperjs的选择器可以在dom下工作,他既支持css也支持xpath.

下面所有的例子都基于这段html代码:

<!doctype html>
<html>
<head>
    <meta charset="utf-8">
    <title>My page</title>
</head>
<body>
    <h1 class="page-title">Hello</h1>
    <ul>
        <li>one</li>
        <li>two</li>
        <li>three</li>
    </ul>
    <footer><p>©2012 myself</p></footer>
</body>
</html>

CSS3

默认情况下,casperjs将字符串视为css3表达式去查找dom元素

如果要查找实例页面里的<h1 class="page-title">,你可以这样做:

var casper = require(‘casper‘).create();

casper.start(‘http://domain.tld/page.html‘, function() {
    if (this.exists(‘h1.page-title‘)) {
        this.echo(‘the heading exists‘);
    }
});

casper.run();
或者你可以使用测试框架:
casper.test.begin(‘The heading exists‘, 1, function suite(test) {
    casper.start(‘http://domain.tld/page.html‘, function() {
        test.assertExists(‘h1.page-title‘);
    }).run(function() {
        test.done();
    });
});
有一些便捷的测试方法依赖于选择器:
casper.test.begin(‘Page content tests‘, 3, function suite(test) {
    casper.start(‘http://domain.tld/page.html‘, function() {
        test.assertExists(‘h1.page-title‘);
        test.assertSelectorHasText(‘h1.page-title‘, ‘Hello‘);
        test.assertVisible(‘footer‘);
    }).run(function() {
        test.done();
    });
});
 

XPath

你也可以选择使用xpath表达式来替代css选择器:

casper.start(‘http://domain.tld/page.html‘, function() {
    this.test.assertExists({
        type: ‘xpath‘,
        path: ‘//*[@class="plop"]‘
    }, ‘the element exists‘);
});
为了更容易的去使用和读xpath,selectXPath能给你提供帮助:
var x = require(‘casper‘).selectXPath;

casper.start(‘http://domain.tld/page.html‘, function() {
    this.test.assertExists(x(‘//*[@id="plop"]‘), ‘the element exists‘);
});

警告:1、当你使用casperjs.fill()去填充fields时,xpath存在使用限制2、PhantomJS只支持css3选择器使用uploadFile method

[译文]casperjs使用说明-选择器

时间: 2024-11-10 07:27:11

[译文]casperjs使用说明-选择器的相关文章

[译文]casperjs使用说明-测试

capserjs自带了一个测试框架,它提供了一个使你能够更容易的测试你的web应用的工具集. 注意: 1.1版本变更 这个测试框架,包括它的所有API,仅能使用在casperjs test子命令下 如果你在测试框架的范围以外使用casper.test的属性,会报error 从1.1-beta3开始,你能够在测试环境下改写casper的初始化配置,想知道更多,可以去dedicated FAQ entry.了解 单元测试 设想Cow为我们想要测试的对象: function Cow() { this.

[译文]casperjs使用说明-使用命令行

使用命令行 Casperjs使用内置的phantomjs命令行解析器,在cli模块里,它传递参数位置的命名选项 但是不要担心不能熟练操控CLI模块的API,一个casper实例已经包含了cli属性,允许你很容易的使用他的参数 让我们来看这个简单的casper脚本: var casper = require("casper").create(); casper.echo("Casper CLI passed args:"); require("utils&q

[译文]casperjs的API-clientutils模块

casper提供了少量的客户端接口用来进行远程DOM环境注入,通过clientutils模块的ClientUtils类实例中的__utils__对象来执行: casper.evaluate(function() { __utils__.echo("Hello World!"); }); 提示: 这个工具不需要使用jQuery, Mootools等第三方库,但是不影响你通过Casper.options.clientScripts来使用这些第三方库   Bookmarklet(标签页) 一

[译文]casperjs 的API-casper模块

Casper class: 可以通过这个模块的create()方法来获取这个模块的一个实例,这是最容易的: var casper = require('casper').create(); 我们也可以通过实例化主方法的方式获得一个自身的实例: var casper = new require('casper').Casper(); 提示: 如果扩展casper类,后面的章节会讲到   不管是casper构造函数还是create()方法,都接受一个参数选项,这个标准的javascript对象一样.

[译文]casperjs的API-colorizer模块

colorizer模块包含了一个Colorizer类,它能够生成一个标准化的颜色字符串: var colorizer = require('colorizer').create('Colorizer'); console.log(colorizer.colorize("Hello World", "INFO")); 大部分情况下,你会通过CASPER echo()方法使用它. casper.echo('an informative message', 'INFO')

jQuery css()选择器使用说明

css选择器只是jquery中的一个功能罢了,下面我来给各位朋友详细介绍jQuery css()选择器使用方法与说明详解,有需要了解学习的同学可参考. CSS操作有一个重要的方法:CSS() CSS()有三个不同的语法,来完成各自的工作: ■$(selector).css(name,value)■$(selector).css({properties})■$(selector).css(name) 返回CSS属性使用CSS(name)返回指定的第一个匹配元素的CSS属性值: 示例 $(this)

jquery选择器使用说明

在jquery中选择器是一个非常重要的东西,几乎做什么都离不开它,下面我总结了jquery几种选择器的用法.以方便后面直接可以用到!! 层次选择器: 1.find()://找到该元素的子元素以及孙子元素(及所有后代元素). $('#box').find('p').css('color', 'white');//id为box下所有的p标签的颜色改为白色 2.children()://找到该元素的子元素. $('#box').children('p').css('color', 'white');/

colpick-jQuery颜色选择器使用说明

一.demo及下载网址:http://www.htmleaf.com/jQuery/Color-Picker/20141108417.html 二.使用效果 三.使用方法 1.引入js和css 需要引入jquery <script src="js/colpick.js" type="text/javascript"></script> <link rel="stylesheet" href="css/col

[译文]Casperjs1.1.0参考文档-安装

安装 Casperjs能被安装在mac osx,windows 和大多数linux版本 依赖项 PhantomJS1.82及以上 Python2.6及以上 1.1版本的新特性 试验性的:在1.1-beta1版本,slimerjs 0.8及以上版本可以在 gecko(firefox)内核上运行你的测试.(仅需要在执行语句命令行中增加–engine=slimerjs这个参数) Mac osx下安装 略 Npm安装 略 从git安装 略 从一个档案安装 你可以从此处下载源代码: 最近的开发版: htt