Ho riscontrato un problema con l'arrivo di Intern 2 per la presenza di elementi. In Stagista 1 stavo usando wait()
per impostare periodi di tempo espressi affinché la pagina attenda che un elemento sia presente dopo un'azione dell'utente. Con Intern 2 sembra essere setFindTimeout()
che dovrebbe sempre indicare a un metodo find()
di attendere un po 'per la presenza dell'elemento. Ho impostato setFindTimeout()
e ho provato a utilizzare pollUntil
per gestire queste attese, ma i test non hanno ancora esito positivo con l'errore "elemento non visibile".setFindTimeout e pollUntil con Intern per gli elementi che non sono visibili sul caricamento iniziale della pagina
Ecco un test di esempio che utilizza gli stessi requisiti dei miei test reali e sta cercando un elemento Id che appare 5 secondi dopo questi carichi page.
define([
'intern!object',
'intern/chai!assert',
'require',
'tests/util',
'intern/dojo/node!leadfoot/Command',
'intern/dojo/node!leadfoot/Session',
'intern/dojo/node!leadfoot/helpers/pollUntil'
], function (registerSuite, assert, require, util, Command, Session, pollUntil) {
registerSuite([
{
name: 'testing_find_by_wait',
test_create_form_on_web: function() {
console.log('Create a form with account, number, number and formula fields')
return this.remote
.setFindTimeout(10000)
.setWindowSize(1280, 960)
.get("http://www.kgstew.com/waittest.html")
.then(pollUntil('return document.getElementById("demo")', 10000))
.findById('demo')
.click()
.end()
}
}
]);
});
Qual è l'errore effettivo che ottieni e da quale linea? –
L'errore è "ElementNotVisible: [POST http://10.0.1.34:4444/wd/hub/session/204fe805-74f6-401d-a22f-5afd976b547c/element/9/click] elemento non visibile" nella riga 29 – kgstew
Quando il test eseguito non sembra che sia in attesa per almeno 10 secondi prima che determini che l'elemento non è visibile. La mia comprensione è che questo è ciò che 'setFindTimeout()' dovrebbe fare. – kgstew