Javascript 量角器-元素未附加到页面文档
所以伙计们,和很多人一样的问题!当我尝试在页面中交互(单击)某个元素时,出现以下错误: 错误消息 失败:过时元素引用:元素未附加到页面 “文件” 我理解了页面改变DOM的概念,但我真的无法解决这个问题。有什么建议吗? (元素出错:等待processoLista.click();)Javascript 量角器-元素未附加到页面文档,javascript,css,selenium,protractor,automated-tests,Javascript,Css,Selenium,Protractor,Automated Tests,所以伙计们,和很多人一样的问题!当我尝试在页面中交互(单击)某个元素时,出现以下错误: 错误消息 失败:过时元素引用:元素未附加到页面 “文件” 我理解了页面改变DOM的概念,但我真的无法解决这个问题。有什么建议吗? (元素出错:等待processoLista.click();) 哪一行导致了问题?您能发布完整的堆栈跟踪吗?@Sureshmani出错的元素是wait processoLista.click();我相信在aplicar.click()之后还会发生其他一些进程/事件,这会影响下一个元
哪一行导致了问题?您能发布完整的堆栈跟踪吗?@Sureshmani出错的元素是wait processoLista.click();我相信在aplicar.click()之后还会发生其他一些进程/事件,这会影响下一个元素processoLista。您是否尝试添加静态等待?虽然不建议这样做,但通过这种等待更容易隔离问题。
console.log('Testing Pesquisa Assunto ...');
beforeAll(async function () {
await browser.get(browser.params.URL_PROCESSO).then(function () {
const EC = protractor.ExpectedConditions;
})
});
it('Deve escolher um ASSUNTO PRINCIPAL e verificar os resultados', async function () {
try {
if (await browser.findElements(by.id('filtro_assuntos')).toEqual(""));
} catch{
const btnMaisFiltros = element(by.id('maisFiltros'))
const placeAssunto = element(by.css('[placeholder = "Assunto"]'))
const listAssuntos = element.all(by.className('mat-option-text')).get(2)
const habilitaAssuntoP = element(by.className('mat-slide-toggle-bar'))
const aplicar = element(by.className("aplicar"))
const processoPainel = element(by.className('cdk-overlay-pane'))
const classText = element(by.className('texto'))
const assunto = element(by.partialLinkText('Abandono'))
await btnMaisFiltros.click();
await browser.wait(EC.presenceOf(placeAssunto));
await browser.wait(EC.elementToBeClickable(placeAssunto));
await placeAssunto.click();
await browser.wait(EC.presenceOf(listAssuntos));
await browser.wait(EC.elementToBeClickable(listAssuntos));
await listAssuntos.click();
await habilitaAssuntoP.click();
await browser.wait(EC.presenceOf(aplicar));
await browser.wait(EC.elementToBeClickable(aplicar));
await aplicar.click();
const processoLista = await element.all(by.className('identificacao')).get(0);
await browser.wait(EC.titleContains('.'));
await browser.wait(EC.presenceOf(processoLista));
await browser.wait(EC.elementToBeClickable(processoLista));
await processoLista.click();//HE CANNOT CLICK HERE! SOMETIMES HE CAN AND SOMETIMES I HAVE THE ERROR
await browser.wait(EC.presenceOf(classText));
await browser.wait(EC.presenceOf(assunto));
expect(await assunto.getText()).toContain('Abandono')
}
})```