如何使用 CasperJS 确定特定输入是否存在
How to determine if a specific input exists using CasperJS
我的Html
<input name="SUBMIT-chn:$INTERNAL_password.pss" title="Select"
class="image selectIcon" type="image" alt="Select" src="docs/pics/select.png">
我正在尝试使用 CasperJS 来了解它是否存在,如果存在,那么 "Click" 是吗?
var casper = require('casper').create();
var site = 'http://internalsite/username=abc';
var exists;
casper.start(site, function() {
exists = this.evaluate(function() {
return __utils__.exists('image selectIcon');
});
});
casper.run(function() {
this.echo(exists).exit();
});
clientutils.exists()
期望 CSS selector 作为参数。您似乎想根据输入元素的两个 class 属性来确定输入元素是否存在。
'image selectIcon'
不是您如何 select 基于 class 属性的元素。一个合适的 CSS select 或者在那种情况下是这个:
'.image.selectIcon'
一个元素可以基于单个 class(多个 class 由白色 space 分隔)通过在其前面加上一个点来 selected。基于同一元素上的多个 class 的选择必须不写 space,因为 selector 中的 space 表示该元素的后代(例如子代)之前 selected 元素。
您可以使用 waitForSelector()
等待元素出现,以防站点是动态生成的,然后单击它:
casper
.start(url)
.waitForSelector('.image.selectIcon')
.thenClick('.image.selectIcon')
.then(function(){
// see what happened after the click
this.capture("screenshot.png");
})
.run();
我的Html
<input name="SUBMIT-chn:$INTERNAL_password.pss" title="Select"
class="image selectIcon" type="image" alt="Select" src="docs/pics/select.png">
我正在尝试使用 CasperJS 来了解它是否存在,如果存在,那么 "Click" 是吗?
var casper = require('casper').create();
var site = 'http://internalsite/username=abc';
var exists;
casper.start(site, function() {
exists = this.evaluate(function() {
return __utils__.exists('image selectIcon');
});
});
casper.run(function() {
this.echo(exists).exit();
});
clientutils.exists()
期望 CSS selector 作为参数。您似乎想根据输入元素的两个 class 属性来确定输入元素是否存在。
'image selectIcon'
不是您如何 select 基于 class 属性的元素。一个合适的 CSS select 或者在那种情况下是这个:
'.image.selectIcon'
一个元素可以基于单个 class(多个 class 由白色 space 分隔)通过在其前面加上一个点来 selected。基于同一元素上的多个 class 的选择必须不写 space,因为 selector 中的 space 表示该元素的后代(例如子代)之前 selected 元素。
您可以使用 waitForSelector()
等待元素出现,以防站点是动态生成的,然后单击它:
casper
.start(url)
.waitForSelector('.image.selectIcon')
.thenClick('.image.selectIcon')
.then(function(){
// see what happened after the click
this.capture("screenshot.png");
})
.run();