2015-06-11 23 views
0

我的HTML如何确定是否存在特定的输入使用CasperJS

<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(); 
}); 

回答

2

clientutils.exists()需要CSS选择器作为参数。看来你想要确定输入元素是否存在基于它的两个类的属性。

'image selectIcon'是不是你选择基于类属性的元素。一个适当的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(); 
+0

你应该潜水之前了解CSS选择器的基础知识到脚本与CasperJS。 –

+0

选择图标中有一个空格 –

+0

是的,类之间可以有多个空格。这就是CSS选择器的工作原理。 –

相关问题