我需要从元素P获取文本但是量角器会一直返回错误
代码:
<div class = "ui-growl-message">
<span class = "ui-growl- title">Sucesso</span>
<p>cargo Cadastrado cm sucesso!</p>
</div>
我试过这种方式:
const msgValidacao = element(by.css('ui-growl-message')).all(by.tagName('p')).first().getText().then(() => {
expect(msgValidacao).toContain('Cargo cadastrado com sucesso');
});
,错误是:
失败:找不到使用定位器的元素:By(css selector, UI-咆哮消息)
问题是元素是一个警告,因此很快就会从屏幕上消失。
答案 0 :(得分:0)
除了css更正之外,您还需要采用某种等待策略来预测消息,并尽可能接近初始呈现时刻抓取内容。由于错综复杂的时序因素,围绕非常短暂的消息的自动化可能具有挑战性。
答案 1 :(得分:0)
为什么它返回找不到元素可能不是真正的问题。我觉得选择器不好。如果元素快速消失,就像你说的那样,有时测试会通过,有时会失败。尝试其他选择器并确保您拥有正确的选择器。
如果要选择第一个元素,请使用get(0)而不是first()
element(by.css('ui-growl-message')).all(by.tagName('p')).get(0)