Ich versuche, einen Test mit CasperJS für ein Szenario zu schreiben, wo das Drücken der Eingabetaste in einer Eingabe der Auslöser für die Seite ist, etwas mit dem sonst in die Eingabe eingegebenen Text zu tun.CasperJS: schluckt spezielle Tasten wie Enter?
Eine gekürzte/vereinfachte Version des CasperJS Tests:
casper.start('http://localhost:3000/input-demo', function() {
this.sendKeys('#demo-input', 'demo text');
this.sendKeys('#demo-input', '\uE007');
this.test.assertEquals(this.getHTML('#stage'), 'input demo');
});
casper.run();
(Wo wir es als casperjs test this-test.js
laufen)
ich überprüft habe, dass sendKeys
den Text in das Eingabe wird immer, aber der Text erscheint nie im #stage
Element. Eine "Vanille" -PhantomJS-Implementierung des Tastendrucks funktioniert einwandfrei, wobei webpage.sendEvent('keypress', '\uE007')
bewirkt, dass der On-Page-Ereignishandler ausgelöst wird. Betrachtet man die Quelle von casper.sendKeys
, sehe ich, dass sie an die sendEvent
auf der Instanz PhantomJS der Casper-Instanz (d. H. line 1613 in the current version of casper.js) delegiert.
Irgendwelche Ideen? Hat jemand diese Schlüssel für einen CasperJS-Test bekommen?
Eine Liste der Sondertasten in casper.page.event.key sehen: https://github.com/ariya/phantomjs/commit/cab2635e66d74b7e665c44400b8b20a8f225153a – pxwise