CasperJS - 根据存储在变量中的值单击按钮

时间:2015-06-18 15:56:08

标签: javascript casperjs

根据输入变量"感觉",我想点击一个按钮(好,坏或好)。如何在casper.click中指定输入变量?

var feeling = 'bad'; //User can choose good, bad or ok
.
.
logit_feeling(feeling); //fucntion call
.
.
// fucntion defnition
var logit_feeling = function (feeling){
    casper.then(function (){
        casper.click(x('//*[text()='feeling']'));   
    });
}

2 个答案:

答案 0 :(得分:0)

您必须正确引用并构建要传递给XPath帮助程序的字符串:

x('//*[text()="'+feeling+'"]')

HTML通常用很多空格编写,在渲染时不会显示。你需要让它更健壮一点:

x('//*[contains(text(),"'+feeling+'")]')

答案 1 :(得分:0)

kbet,

正如Artjom所说,你可以在XPath字符串中连接它的变量并获取属性元素text()。

在某些情况下,你仍然可以追求,以及可能搜索**的axis text()。 **。

例如:

'//a[.,"sample"]'

如上所述,文本在字符串处是准确的。您甚至可以使用CONTAINS:

比较一些文本
'//a[contains(.,"sample")]'

您可以考虑的另一个选择是使用带有CSS路径元素的casper.click()(如果可以的话):

casper.click("my > css > path");

希望你能帮忙! ;)