Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript casperjs单击的不是选择器而是变量_Javascript_Click_Casperjs - Fatal编程技术网

Javascript casperjs单击的不是选择器而是变量

Javascript casperjs单击的不是选择器而是变量,javascript,click,casperjs,Javascript,Click,Casperjs,是否可以在不传递选择器的情况下单击casper js中的页面元素?我的意思是我不能这么做: casperjs.thenClick('#test'); 但我有 var testV = document.querySelector('#test'); 我想这样做: casperjs.thenClick(testV); 目前它不起作用您使用不当。确保then.click不包含在casper.evaluate块中,并注意casper末尾没有js。它应按以下方式实施: casper.thenClic

是否可以在不传递选择器的情况下单击casper js中的页面元素?我的意思是我不能这么做:

casperjs.thenClick('#test');
但我有

var testV = document.querySelector('#test');
我想这样做:

casperjs.thenClick(testV);
目前它不起作用

您使用不当。确保then.click不包含在casper.evaluate块中,并注意casper末尾没有
js
。它应按以下方式实施:

casper.thenClick('a', function() {
    this.echo("I clicked on first link found, the page is now loaded.");
});
如果只想在选择器上执行常规操作,可以执行以下操作:

casper.then(function() {
    // Click on 1st result link
    this.click('h3.r a');
});
casper.then(function() {
    casper.evaluate(function() {
        var testV = document.getElementById("test");
        testV.click();
    });
});
如果要使用javascript,请确保位于语句中。您可以使用以下选项:

casper.then(function() {
    // Click on 1st result link
    this.click('h3.r a');
});
casper.then(function() {
    casper.evaluate(function() {
        var testV = document.getElementById("test");
        testV.click();
    });
});

好的,只有当我在这里输入时,“casperjs”才是错误的。在我的代码中,它是可以的:),但其余的仍然不起作用。请将我的答案标记为正确答案,我正在检查您的代码,问题是:我已经测试了它,但第一个不起作用。但我在另一个网站上测试了这一点,它确实有效。它在输入提交上工作,但在锚上不工作。所以你的解决方案是好的,但不是完美的:)你知道锚是什么吗?