我的Html
<input name="SUBMIT-chn:$INTERNAL_password.pss" title="Select"
class="image selectIcon" type="image" alt="Select" src="docs/pics/select.png">
我正在尝试使用CasperJS来了解它是否存在以及是否存在然后“点击”它?
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();
});
答案 0 :(得分:2)
clientutils.exists()
期望CSS选择器作为参数。看来你想根据它的两个类属性确定输入元素是否存在。
'image selectIcon'
不是基于class属性选择元素的方式。在这种情况下,适当的CSS选择器是这样的:
'.image.selectIcon'
可以通过在前面添加一个点来基于单个类(多个类由空格分隔)来选择元素。必须在没有空格的情况下编写基于同一元素上的多个类的选择,因为选择器中的空格意味着先前所选元素的后代(例如子)。
您可以使用waitForSelector()
等待元素出现,以便动态生成网站,然后点击它:
casper
.start(url)
.waitForSelector('.image.selectIcon')
.thenClick('.image.selectIcon')
.then(function(){
// see what happened after the click
this.capture("screenshot.png");
})
.run();