Jestem na moim trzecim dniu pracy z Kątomierzem i ciągle uderzam w ściany bric w odniesieniu do oczekiwania na strony do załadowania i elementów do wyświetlenia. Ten przypadek testowy w szczególności stał się nieprzyjemny i chciałbym rozwiązać te problemy, nie musząc polegać na snach.Czekaj na element, aby zmienić jego wartość (tekst)
Jestem obecnie „na zewnątrz z ziemi 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());
});
Więc test tutaj zmienia nazwę w polu wejściowym. przesyła go i czeka, aż zmiany znajdą odzwierciedlenie w nagłówku modalu. Problem polega na tym, że bez browser.driver.sleep (2000) pojawia się błąd mówiący
Stacktrace:
StaleElementReferenceError: stale element reference: element is not attached to the page document
Jak mogę iść o rozwiązywaniu to w tym konkretnym przypadku?