Phantomjs casperjs可以';不要点击reddit.com

Phantomjs casperjs可以';不要点击reddit.com,phantomjs,casperjs,Phantomjs,Casperjs,我的casperjs点击在大多数网站上都运行良好,但当我尝试点击reddit上的某个东西时,它不会点击 casper.start(); casper.then(function (){ this.open("http://reddit.com"); }); casper.then(function(){ this.sendKeys("[name='user']", 'someusername'); this.sendKeys("[name='passwd']

我的casperjs点击在大多数网站上都运行良好,但当我尝试点击reddit上的某个东西时,它不会点击

casper.start();
casper.then(function (){
  this.open("http://reddit.com");
});

casper.then(function(){
        this.sendKeys("[name='user']", 'someusername');
        this.sendKeys("[name='passwd']", 'somepassword');
        this.click("[id='rem-login-main']");
        this.click(x('//*[@id="login_login-main"]/div[3]/button'))
});
casper.run();

sendkeys功能工作正常,但两个单击功能都不工作,请帮助

查找以下代码及其工作原理

casper.test.begin("Opening Reddit page", 1, function suite(test) {

    var x = require('casper').selectXPath;//required if we detect an element using xpath
    casper.start();

    casper.viewport(1024, 768).then(function () {
        this.open("http://reddit.com");
        this.wait(5000)
    });

    casper.then(function () {
        this.sendKeys("[name='user']", 'username');
        this.sendKeys("[name='passwd']", 'password');
        this.click("[id='rem-login-main']");
        this.click(x(".//*[@id='login_login-main']/div[3]/button"));
    });

    casper.wait(5000)

    casper.then(function () {
        this.test.assertExists(x(".//*[@id='header-img']"), "Confirmed that page has successfully loaded");
    });

    casper.run(function () {
        test.done();
    });
});

你怎么知道它不起作用了?我没有看到验证代码,比如等待和截图。你使用哪个PhantomJS版本?请注册到
resource.error
page.error
remote.message
casper.page.onResourceTimeout
事件()。可能有错误。嗨,artjom,很抱歉我没有写等待和屏幕截图,因为我希望代码更容易阅读。问题是,当我运行this.click时,它不会单击,但是如果我添加一个keypress事件“space”,keypress会单击该按钮,那么这到底是什么意思呢?这意味着单击处理程序的实现方式使CasperJS的过程不会触发它。有时,其他一些方法也能起作用,比如聚焦表单并发送“回车”按键事件。谢谢artjom,还有一个问题。。我正在发送以下命令:“document.querySelector(“[class='submit']”)。click();”在chrome控制台中,它可以单击reddit.com中的任何内容;那么你知道在chrome控制台内点击和casperjs有什么不同吗?或者有没有像点击焦点这样的东西?thankshi prateek,我尝试了你的代码,在casper.run之前添加了一个屏幕截图,输入了用户名和密码的值,但没有单击登录按钮。如果成功单击,则会弹出错误的密码。您是否介意添加“casper.capture('login_button.png');”并查看您的casperjs是否显示了错误的密码?根据您的说法,情况是,您输入了错误的密码并希望出现一个弹出窗口!正确的?。你只要把你的问题改一下,我们就可以了解整个情况了