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

CasperJS - Click button based on value stored in variable

基于输入变量 "feeling",我想点击一个按钮(好、坏或好)。如何在 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']'));   
    });
}

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

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

通常 HTML 会写有很多空格,这些空格在呈现时不会显示。你需要让它更强大一点:

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

kbet,

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

在某些情况下,您仍然可以继续搜索,以及坐标轴文本() 可以搜索**。 **.

例如:

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

如上所述,文本与字符串一样准确。您甚至可以使用 CONTAINS:

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

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

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

希望对您有所帮助! ;)