2017-05-26 3 views
3

Ich bin neu in Robot Framework und ich versuche Run Keyword If .. ELSE .. zu verwenden.Robot Framework Run-Schlüsselwort wenn .. ELSE fehlschlägt

Was es tun sollte:
Fügen Sie ein neues Schlüsselwort hinzu, um eine Prüfung durchzuführen, wenn eine Seite das Wort "geschlossen" enthält. Wenn dies der Fall ist, aktualisieren Sie die Seite. Ist dies nicht der Fall, klicken Sie auf das Element "this" und fahren Sie mit dem Rest des Szenarios fort.

*** Keywords *** 
Check if anything is closed 
    ${ClickThis} Click Element xpath=//*[@id="this"] 
    ${Closed} Page Should Contain Element xpath=//*[text()='Closed'] 
    Run Keyword If ${Closed} =='PASS' Reload Page ELSE ${ClickThis} 

Was passiert, wenn ich es laufen:
„Geschlossen“ nicht auf der Seite angezeigt wird. "Dies" wird angeklickt. Dann schlägt der Test fehl, weil:
Page should have contained element 'xpath=//*[text()='Closed']' but did not

Bitte, mir helfen, es zu korrigieren.

Bearbeiten: geändert Page Should Contain zu Page Should Contain Element. Gleiche Ergebnisse.

Antwort

4

Das Argument nach der ELSE sollte ein anderes Schlüsselwort sein.


Was effektiv ist passiert, dass

${ClickThis} Click Element xpath=//*[@id="this"] 

Sie Wert ${ClickThis} auf dieser Linie zugewiesen haben - was nichts ist, ${None}, als Click Element Wert nicht zurück.

Auf dieser Linie sind Sie wieder ${Closed} den Rückgabewert von Page Should Contain

${Closed} Page Should Contain xpath=//*[text()='Closed'] 

zuweisen, die erwarten nicht, dass Sie es nicht -, dass selbst Schlüsselwort entweder nicht (wie in Ihrem Fall war), wenn der Text ist nicht da oder geht schweigend über; gibt aber keinen Wert zurück.

Also, um zu bekommen, was Sie versuchen, verwenden Sie zu erreichen Run Keyword And Return status für die „Seite sollte enthalten“ - es wird wieder True/False nach dem Exit-Status des umwickelten Stichwort:

${Closed}= Run Keyword And Return Status Page Should Contain xpath=//*[text()='Closed'] 

Jetzt ${Closed} hat einen Wert von ${True}, wenn der Text in der Seite war, ${False} sonst; verwenden, die in der Run Keyword If Block, vorbei an ein Schlüsselwort als 2. Argument:

Run Keyword If ${Closed} Reload Page ELSE Click Element xpath=//*[@id="this"] 
+1

Es arbeitete wie ein Charme! Danke für das Erklären. – Tea000

Verwandte Themen