J'écris des tests fonctionnels pour l'application web sur Intern. J'ai un fichier dans lequel je décris toutes les actions sur le test, et il y a aussi un test où ces actions sont appeléesLa fonction setFindTimeout ne fonctionne pas pour moi
par exemple:
il y a un fichier Action.ts
dans il fonctionne dans le test qui sont appelés successivement
//1
//open the registration window
openRegistration(): Command<void> {
return Action.openRegistration(this.parent);
}
static openRegistration(command: Command<any>): Command<void> {
return command
// click on the authorization menu
.setPageLoadTimeout (10000)
.get(intern.args.url)
.end()
}
//2
inputTextByCssSelector(selector: string, value: string): Command <void> {
return Input.inputTextByCssSelector(this.parent, selector, value);
}
static inputTextByCssSelector(
command: Command<any>,
selector: string,
value: string
): Command<void> {
return command
.setFindTimeout(10000)
.findByCssSelector(selector)
.click()
.type(value)
.end()
.end()
}
comme celui-ci
.then(() => action.openRegistration())
.then(() => input.inputTextByCssSelector(
"input [name = userName]",
intern.args.username
))
.then(() => input.inputTextByCssSelector(
"input [name = password]",
intern.args.password
))
Mais quand j'exécute le test, il tombe.
Si je mets un délai explicite à la fin de openRegistration par exemple comme celui-ci
openRegistration(): Command<void> {
return Action.openRegistration(this.parent);
}
static openRegistration(command: Command<any>): Command<void> {
return command
.setPageLoadTimeout(10000)
.get(intern.args.url)
.sleep(7000)
.end()
}
alors tout fonctionne
Pourquoi ne fonctionne pas setFindTimeout(10000)
dans inputTextByCssSelector
, mais avec sleep(7000)
dans openRegistration
fonctionne