2016-04-05 41 views
2

Ben CasperJS ile oynamak veama CasperJS

https://registrierung.web.de/#.homepage.loginbox_1.1.registrierung Yani giriş alanına sahip bazı Serbest E-posta takma adı yakalamaya çalışıyorum bütün sayfayı yeniden: "E -Mail-Wunschname: "bir isim yapıştırmak istediğimde," Prüfen "düğmesine tıklayın ve daha sonra önerilen hesapları kazıyın. Tam bir sayfanın teslim ve sadece nesil bu sadece her iki yönden ile

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()); 
    }); 

:

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(); 
da

Yorgunum ile düğmesini tıklayın:

Şimdiye kadar bunu denedi öneri.

cevap

2

Düğmeye tıklandığında (casper.click("#checkAvailabilityBtn")) iyi çalışıyor gibi görünüyor.

İşte tam script:

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(); 

arada, casper.sendKeys() böyle Enter tuşu gibi basılan tuşları işlemek mümkün değildir. PhantomJS 'page.sendEvent() işlevini kullanmanız gerekir.

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

hmm teşekkürler, ama iyi çalışmaz onun: o sayfayı yeniden çünkü şu şekilde normal çalışır, ancak bu durumda düzgün çalışabilmesi için görünmüyor. Tıklama tüm sayfayı sunar. Bir "normal" tarayıcıda deneyin ve ne demek istediğimi görüyorsunuz. – swapfile

+0

utanıyor bana! SendKeys'teki "Test" Sorundu. Çalıştığından daha "Chrisko" ile denedim. – swapfile