如何检查元素是否更改了文本

How to inspect if a element changed there text

我们需要检查元素上的文本何时更改,因为这是查看进程是否结束的一种方式,所以我们做了这样的事情:

*** Settings ***
Library          Browser
*** Test Case ***
...
Then inspect if the element text is Finished
*** Keywords ***
Then inspect if the element text is Finished
sleep                                                      10
${text} =                                                  Get Text                                                      //*[@id="situacaoUltimaMovimentacaoVariacaoCambial"]
Should Be Equal                                            ${text}                                                      Finished

但我不认为为此使用睡眠是个好主意,你们知道一些更好的解决方案吗?

您可以使用下面提到的方法:

例如元素最初的xpath--> //*[@id='anyid' and contains(text(), 'Started')] 最后 --> //*[@id='anyid' and contains(text(), 'Finished')]

*** Settings ***
Library          Browser
*** Test Case ***
...
Then inspect if the element text is Finished
*** Keywords ***
Then inspect if the element text is Finished
Wait Until Page Contains Element      //*[@id='anyid' and contains(text(), 'Finished')]    60s  

关键字 Wait Until Page Contains Element 将等待 id - 'anyid' 和文本 - 'Finished' 的元素 60 秒。如果文本未更改,则测试用例将失败。

您还可以使用 Wait Until Element Contains 关键字

Wait Unitl Element Contains    //*[@id='anyid']    Finished    60s

   

感谢@senaid,我找到了一个很好的解决方案。

因为 Playwright 总是会等到尝试执行某些命令,所以我使用了单击包含过程完成后将找到的文本的元素。所以代码将是:

*** Settings ***
Library          Browser
*** Test Case ***
...
Then inspect if the element text is Finished
*** Keywords ***
Then inspect if the element text is Finished
Click                                                          //*[@id='situacaoUltimaMovimentacaoVariacaoCambial' and contains(text(),'Finished')]