Sono al mio terzo giorno di lavoro con Goniometro e continuo a colpire i muri di ferro per quanto riguarda l'attesa delle pagine da caricare e degli elementi da visualizzare. In particolare, questo test case è diventato brutto e vorrei risolvere i problemi senza dover fare affidamento sul sonno.Attendi che l'elemento cambi il suo valore (testo)
Attualmente sto "al di fuori della terra di AngularJS"
it('it should reflect in both the field and the title when the personnel name is changed', function() {
var inputField, personnelHeader, personnelName;
personnelName = element(By.css(".overlay.editnameoverlay")).click();
personnelHeader = element(By.id("personnel_name_header"));
inputField = element(By.css("input[name='newvalue']"));
inputField.clear();
inputField.sendKeys("Test 123");
element(By.css("input[name='ok_button']")).click();
// browser.driver.sleep(2000); This test only works with this sleep added
browser.wait(function() {
console.log("Waiting for header to change...");
return personnelHeader.getText().then(function(text) {
return text === "Test 123";
});
}, 5000);
return expect(personnelHeader.getText()).toBe(personnelName.getText());
});
Quindi il test qui cambia il nome in un campo di input. lo invia e attende che le modifiche si riflettano nell'intestazione del modale. Il problema è che senza il browser.driver.sleep (2000) ottengo un errore che dice
Stacktrace:
StaleElementReferenceError: stale element reference: element is not attached to the page document
Come posso fare per risolvere questo in questo caso particolare?