我在casperjs中遇到sendKeys的以下问题。 我试图将端口作为选项传递给casperjs,这是有效的,但是当我尝试使用casper.cli.get的端口值时,它在sendKeys中不起作用!!!
var casper = require('casper').create();
casper.echo("Casper CLI passed args:");
require("utils").dump(casper.cli.args);
casper.echo("Casper CLI passed options:");
require("utils").dump(casper.cli.options);
if (casper.cli.has("ip") === false) {
casper.echo("Usage: casper.js test modify_port.js --ip=<x.x.x.x> --port=<xxxxx>").exit();
}
if (casper.cli.has("port") === false) {
casper.echo("Usage: casper.js test modify_port.js --ip=<x.x.x.x> --port=<xxxxx>").exit();
}
...
casper.then(function() {
test.assertTextExists("Change", "Data Base - Change - port");
this.sendKeys('input[name="Params.port"]', casper.cli.get("port"));
this.click('input[name="Apply"]');
});
以上方式似乎不起作用,它也没有给我带来错误信息。 但是当我在sendKeys行中对端口进行硬编码时,我发现端口已经改变,如:
this.sendKeys('input[name="Params.port"]', '29999');
这也很好(硬编码):
var myPort = '29999'
this.sendKeys('input[name="Params.port"]', myPort);
但这再次无效:
var myPort = casper.cli.get("port")
this.sendKeys('input[name="Params.port"]', myPort);
谢谢你。你的时间
答案 0 :(得分:1)
经过一些阅读之后,我逐步介绍了casperjs文档中有关Raw参数值的部分。
所以,我想通过这种方式使用我的参数:
this.sendKeys('input[name="Params.port"]', casper.cli.raw.get('port'));
答案 1 :(得分:1)
当将变量传递给sendKeys时,它们不会出现在表单中,除非它们前面带有空字符串&#34;&#34;。
this.sendKeys("selector", "" + variable);
我想这可能是因为sendKeys只能处理string类型的变量。