Javascript 单击按钮应该会得到Ajax响应,但会在CasperJS中重新加载整个页面

Javascript 单击按钮应该会得到Ajax响应,但会在CasperJS中重新加载整个页面,javascript,ajax,phantomjs,submit,casperjs,Javascript,Ajax,Phantomjs,Submit,Casperjs,我正在玩CasperJS,并试图捕捉一些免费的电子邮件别名 因此,我有一个输入字段:“E-Mail-Wunschname:”我想在这里粘贴一个名字,然后单击“Prüfen”按钮,然后只需刮取建议的帐户 到目前为止,我已经尝试过: var casper = require('casper').create({ pageSettings: { loadImages: false, loadPlugins: true, userAgent:('M

我正在玩CasperJS,并试图捕捉一些免费的电子邮件别名

因此,我有一个输入字段:“E-Mail-Wunschname:”我想在这里粘贴一个名字,然后单击“Prüfen”按钮,然后只需刮取建议的帐户

到目前为止,我已经尝试过:

var casper = require('casper').create({
    pageSettings: {
        loadImages: false,
        loadPlugins: true,
        userAgent:('Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:45.0) Gecko/20100101 Firefox/45.0')
    }

});

var mouse = require("mouse").create(casper);

casper.start('https://registrierung.web.de/#.homepage.loginbox_1.1.registrierung').viewport(1200,1000);

casper.then(
    function() {               
        this.sendKeys('.wishname.feedback-panel-trigger.multiReplaceCharsInWishnamelField',"Test");
        this.sendKeys('.wishname.feedback-panel-trigger.multiReplaceCharsInWishnamelField',casper.page.event.key.Enter);       
        this.wait(5000);        
    }
);
casper.then(function() {
    this.wait(5000);
    this.capture('webde.png');
    console.log('clicked ok, new location is ' + this.getCurrentUrl());
});


casper.run();
我还尝试用以下按钮单击按钮:

casper.wait(6000, function() {
    this.evaluate(function(){                 
        document.querySelector('.wishname.feedback-panel-trigger.multiReplaceCharsInWishnamelField').value = "Test";           
        document.querySelector('#checkAvailabilityBtn').click();
            });
    });
    casper.then(function() {
        this.capture('webde.png');
        console.log('clicked ok, new location is ' + this.getCurrentUrl());
    });
通过这两种方式,它只是完整地提交页面,而不仅仅是生成建议。

单击按钮(
casper.click(“#checkAvailabilityBtn”)
)似乎效果不错

以下是完整的脚本:

var casper = require('casper').create();

casper.start('https://registrierung.web.de/#.homepage.loginbox_1.1.registrierung').viewport(1200,1000);

casper.then(function() {               
    this.sendKeys('.wishname.feedback-panel-trigger.multiReplaceCharsInWishnamelField', "Test"); 
    this.click("#checkAvailabilityBtn");
});
casper.wait(5000);
casper.then(function() {
    this.capture('test80_webde.png');
    console.log('clicked ok, new location is ' + this.getCurrentUrl());
});

casper.run();
顺便说一下,
casper.sendKeys()
无法处理诸如回车键之类的按键操作。您需要使用PhantomJS'
page.sendEvent()
函数。它以以下方式正常工作,但在这种情况下似乎无法正常工作,因为它会重新加载页面:

this.sendKeys('.wishname.feedback-panel-trigger.multiReplaceCharsInWishnamelField', "Test", {keepFocus: true}); 
this.page.sendEvent("keypress", this.page.event.key.Enter);

嗯,谢谢,但效果不好。单击将提交整个页面。在“普通”浏览器中尝试一下,你就会明白我的意思了。我真丢脸!SendKeys中的“测试”就是问题所在。我用“克里斯科”试过了,但没用。。。