stale element
означает, что транспортир видит элемент.Так что он его находит.
устаревший элемент происходит, когда вы пытаетесь await
выполнить действие против нескольких элементов (20+), например, await element.all().getText()
, так что найдите, где вы это делаете, и найдите обходной путь.
ваш код из фрагмента мог бы быть гораздо более читабельным
public async clickForgetPasswordLink() {
let expectedValue = "Forgot Password";
let link = element(by.linkText('Forgot Password?'));
await browser.wait(
until.visibilityOf(link),
TIMEOUT_MILLIS,
'Unable to locate forgot password link...'
);
await link.click();
let emailText = await link.getAttribute("aria-label");
logger.info("Getting forgot password link value:" + emailText);
expect(emailText).toEqual(expectedValue);
await browser.driver.sleep(2000);
}