Mise à jour: Problème résolu, consultez le commentaireID de session non valide lors de l'utilisation page objet sur le concombre Nightwatch
Je suis en train de convertir certains utilisent fréquemment test pour objet page et je donne les résultats suivants comme pg.js :
var myCommands ={
security:function(username){
this.click('@logon')
.waitForElementVisible('@id',20000)
.click('@id')
.setValue('@id',username)
.click('@device')
},
password:function(username){
console.log(this)
return this.useXpath()
.navigate()
.assert.elementPresent('@logon', 20000)
.click('@logon')
.waitForElementVisible('@id',20000)
.click('@id')
.setValue('@id',username)
.click('@password')
.waitForElementVisible('//input[@name="Answer"]', 20000);
}
};
module.exports={
url : 'https://mywebsite',
commands :[myCommands],
elements:{
logon:{
locateStrategy: 'xpath',
selector:'//a[@title="Log on"]'
},
id:{
locateStrategy: 'xpath',
selector:'//input[@name="userid"]'
},
device:{
locateStrategy: 'xpath',
selector:'//a[text() = "Login with PIN"]'
},
password:{
locateStrategy: 'xpath',
selector:'//a[text() = "Login with passwords"]'
}
}
};
de l'console.log (cela), je peux voir que l'ID de session et le contexte est nul:
Et dans mes test.js, j'ai ces deux lignes:
var logon=client.page.pg()
....
logon.password(username)
Quand je lance le test, il montre
Error: Creating screenshot was not successful. Response was:
{ status: -1,
value:
{ error: 'invalid session id',
message: 'No active session with ID null',
stacktrace: '' },
errorStatus: 6,
error: '' }
Ma question est pourquoi la session est nulle? et s'il y a un problème comment je configure l'objet page dans pg.js ou test.js.
Problème résolu: après avoir utilisé l'objet page dans un test, vous devez utiliser Pageobject.api pour appeler les fonctions, et ne pouvez pas faire de client.whateveritis(). par exemple,'logon.password (nom d'utilisateur) .api.elements (blablabla) ' – Raymond