-1

摆脱元素至极的文字,我需要得到元素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'); 
        }); 

和错误是:

失败:没有使用定位器找到的元素:通过(CSS选择, UI-咆哮消息)

的问题是元件是一个警告,从而它迅速从屏幕上消失。

+1

您的CSS类语法是错误的。它应该像'element.all(by.css('div.ui-growl-message p'))' 标签没有前缀,类的前缀是'.' 看起来你没有太多的研究如何选择元素。这个问题是非常基本的。 –

+1

感谢您的帮助。 对不起,我在量角器上很新,英语不是我的第一语言,所以它会让一切变得更加难以研究。 =) – paulotarcio

+0

别担心。对于在IT工作的任何人来说,英语很少成为第一语言。 –

回答

0

除了css更正之外,您还需要采用某种等待策略来预测消息并尽可能在初始呈现时抓取内容。由于错综复杂的时序因素,对非常短暂的信息进行自动化可能具有挑战性。

+0

没有太多的上下文来确定元素是否真的在消失或者它是否变得不可见。此外,量角器和默认超时会自动处理这种简单的时序问题。它只会变得更加困难,如果消息即在一段时间之后随机出现而不是在动作或加载内。 –

0

它可能不是真正的问题,为什么它返回没有找到该元素。我说选择器不好。如果元素快速消失,如你所说有时候测试会通过,有时会失败。尝试另一个选择器,并确保你有正确的。

如果你想选择第一要素使用GET(0)不是第一个()

element(by.css('ui-growl-message')).all(by.tagName('p')).get(0)