-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)