2013-02-28 9 views
9

Zum Beispiel habe ich einen Schritt, der oft ausgeführt werden muss, zB Benutzeranmeldung vor einem Test.Wie schreibt man eigene CasperJS-Module?

Wie schreibe ich wiederverwendbare Codestücke für CasperJS? Ihre Dokumentation zur Erweiterung von CasperJS wird nur für eine Datei geschrieben ...

Vielen Dank!

+1

Ich glaube, das [Problem] (https://github.com/n1k0/casperjs/issues/348) bezieht sich ziemlich gut auf das Problem, das Sie erleben. – hexid

+0

Casperjs ist nicht der Teil von Nodejs Ökosystem. – shabunc

Antwort

8

Hier ist ein einfacher Ansatz. Wenn Sie mit coffeescript nicht vertraut sind, konvertieren Sie es in JS über js2coffee.

tests/casper/test.coolPage.coffee

loginModule = require("./test.login") 
loginModule.login("test","testPW") 

casper.test.comment "Testing cool stuff, should be logged in by now" 

casper.thenOpen casper.cli.get("url") + "/myCoolPage", -> 
    @test.assertExists '#myCoolDiv' 

casper.then() -> 
    @test.assertExists '.somethingElse' 

casper.run -> 
    @test.done() 

tests/casper/test.login.coffee

exports.login = (username, password) -> 
    casper.test.comment "Loggin in with username \"#{username}\", password \"#{password}\"" 

    casper.start casper.cli.get("url") + "/login", -> 
    @test.assertExists "input[name=username]", "input[name=password]" 

    casper.then() -> 
    @sendKeys "input[name=username]", username 
    @sendKeys "input[name=password]", password 
    @click "input[type=submit]" 

    casper.then() -> 
    #assert you got logged in 

von der Befehlszeile ausgeführt wird:

cd tests/casper  
casperjs test test.coolPage.coffee --url=http..my-test-url 
+1

Wir haben fast gleich getan. Es ist auch möglich, dies ohne Export durchzuführen und Methoden direkt zur Casper-Instanz hinzuzufügen: 'casper.login'. – ValeriiVasin