2017-01-12 2 views
0

Dies ist mein erstes Mal mit Casperjs arbeiten zu Senden. Ich habe ein Formular, das keine ID oder Namen hat, aber einen Benutzernamen und ein Passwort benötigt, um eingereicht zu werden.Casperjs Mit Form ohne ID oder Namen

Im HTML Körper gibt es einen Lade = "init (document.forms [0]);"

Die Form:

<form method="post"> 
       <table border="0" cellspacing="0" cellpadding="0"> 
         <tbody><tr> 
         <script> 
           document.write('<td class="username">'); 
           document.write(langstr[ui_CurrentLanguage].login_username); 
           document.write('&nbsp;:&nbsp;'); 
           document.write('</span>'); 
           document.write('<td colspan="2"><input type="text" class="inputname" id="user_name" name="user_name" onKeyPress="if(event.keyCode == \'13\') Validate();" size="20" maxlength="65" autocomplete="off"></td>'); 
         </script><td class="username">USERNAME&nbsp;:&nbsp;</td><td colspan="2"><input type="text" class="inputname" id="user_name" name="user_name" onkeypress="if(event.keyCode == '13') Validate();" size="20" maxlength="65" autocomplete="off"></td> 
         </tr> 
         <tr> 
         <script> 
           document.write('<td class="password">'); 
           document.write(langstr[ui_CurrentLanguage].login_password); 
           document.write('&nbsp;:&nbsp;'); 
           document.write('</span>'); 
           document.write('<td colspan="2"><input type="password" class="inputpwd" id="user_passwd" name="user_passwd" onKeyPress="if(event.keyCode == \'13\') Validate();" size="20" maxlength="64" autocomplete="off"></td>'); 
         </script><td class="password">PASSWORD&nbsp;:&nbsp;</td><td colspan="2"><input type="password" class="inputpwd" id="user_passwd" name="user_passwd" onkeypress="if(event.keyCode == '13') Validate();" size="20" maxlength="64" autocomplete="off"></td> 
         </tr> 
       </tbody></table> 

Ich habe Probleme beim Verweisen auf die Form, so dass ich die Fill-Methode in casperjs verwenden kann. Irgendwelche Ideen, wie man sich auf dieses Formular bezieht?

Danke.

Antwort

0

Sie müssen sendKeys() verwenden, um das Formular auszufüllen und die Taste "13" (Enter) senden:

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

.start('http://',function(){ 
    this.sendKeys('#user_name', 'your_name', {keepFocus: true}); 
    this.sendKeys('#user_passwd','your_pass', {keepFocus: true}); 
    this.sendKeys('#user_passwd', casper.page.event.key.Enter , {keepFocus: true}); 

    this.wait(3000,function(){ 
    this.capture('test.png'); 
    utils.dump(this.getTitle()); 
}); 
}) 
    .run(); 

Siehe auch: this issue

+2

Dank! Ich werde es versuchen und zu dir zurückkommen. – Rick

+2

Super! Vielen Dank! Es funktionierte. – Rick

Verwandte Themen