2017-07-19 39 views
0

C'est le code que je utilise pour exécuter mes testsPourquoi mon test ne charge-t-il pas mon fichier d'objet de page? (Nightwatch.js)

this is my config file. 
{ 
    "src_folders" : ["tests"], 
    "output_folder" : "reports", 
    "custom_commands_path" : "", 
    "custom_assertions_path" : "", 
    "page_objects_path" : "./pages/affirm.js", 
    "globals_path" : "./data/data_for_requestinfo.js", 

    "selenium" : { 
    "start_process" : true, 
    "server_path" : "/Users/davidcastro/Automation/bin/selenium-server- 
standalone-3.4.0.jar", 
    "log_path" : "", 
    "port" : 4444, 
    "cli_args" : { 
     "webdriver.chrome.driver" : 
    "/Users/davidcastro/Automation/Drivers/chromedriver", 
     "webdriver.gecko.driver" : 
"/Users/davidcastro/Automation/Drivers/geckodriver", 
    "webdriver.edge.driver" : "" 
    } 
    }, 

    "test_settings" : { 
    "default" : { 
     "launch_url" : "https://www.affirmpronebiopsy.com/", 
     "selenium_port" : 4444, 
     "selenium_host" : "localhost", 
     "silent": true, 
     "screenshots" : { 
     "enabled" : false, 
     "path" : "" 
     }, 
     "desiredCapabilities": { 
     "browserName": "firefox", 
     "marionette": true 
     } 

    }, 
    "brevera" : { 
     "launch_url" : "https://prod.breverabiopsy.com/", 
     "desiredCapabilities": { 
     "browserName": "chrome", 
     "javascriptEnabled": true, 
     "acceptSslCerts": true 
     } 
    }, 

    "chrome" : { 
    "desiredCapabilities": { 
     "browserName": "chrome" 
     } 
    }, 

    "edge" : { 
     "desiredCapabilities": { 
     "browserName": "MicrosoftEdge" 
     } 
     } 
    } 
} 



This is my page file 

module.exports = { 
    elements: { 
    name: { 
     selector: "input[type=text]" 
    }, 
    email: { 
     selector: 'input[type=email]' 
    }, 
    country:{ 
     selector: 'select[id=edit-country]' 
    }, 
    submit: { 
     selector: 'input[id=edit-submit]' 
    } 
    } 
}; 

Ceci est mon fichier de test

module.exports = { 
'Request info ' : function (client) { 
var data = client.globals; 
    var myPageObject = client.page.affirm(); 

client 
    .url(client.launch_url + '/request-info') 
    .waitForElementPresent('body', 1000) 
    .setValue("@name", [data.name, client.Keys.ENTER]) 
    .pause(1000) 
    .setValue('@email', [data.email]) 
    .pause(1000) 
    .setValue('@country', [data.country]) 
    .pause(1000) 
    .click('@submit') 
    .pause(1000) 
    .assert.containsText('main', 'Thank you for your interest!') 
    .saveScreenshot('./screenshots/search-result.png') 
    .pause(1000) 
    .end(); 

}} ;

J'ai essayé de changer le chemin plusieurs fois dans mon fichier de configuration à ceci: ./pages, et changé la façon dont je l'ai appelé dans mon test à ceci: var page = client.page() et qui exécute mon test, mais sans les champs que j'ai nommés dans mon fichier de page, donc je reçois des erreurs.

avec la configuration mentionnée ci-dessus que je reçois cette erreur: The error

est-ce que je fais mal ici?

Répondre

0

Si votre fichier nightwatch.conf.js se trouve dans le même répertoire que le data et pages, essayez d'écrire le chemin sans l'initiale '.' devant. Par exemple:

"page_objects_path" : "/pages/affirm.js" 
+0

Je l'ai essayé et je reçois toujours l'erreur mentionnée ci-dessus. – DavidCastro

1

Chemin d'objet doit être un répertoire, pas un fichier

"page_objects_path" : "./pages"