emi
emi

Reputation: 97

Robot Framework: How to make Wait until keyword from selenium library return true or false

I would like to Run a keyword if an element is present on page.

I try using Selenium library's Wait Until Page Contains Element keyword, but it will always return "None", whether or not the element is present. I tried setting custom error, but that won't work either:

${condition} =     Wait Until Page Contains Element    ${locator}    timeout=5   error=false
Run Keyword if  '${condition}'=='false'       click element  ${some_refreshButton_locator}

Keyword click element ${locator} will run only when I make condition '${condition}'=='None'

Am I doing something wrong and how can I make a Selenium Library Wait until... keyword return true or false.

Thanks!

Upvotes: 4

Views: 18399

Answers (2)

Rakesh
Rakesh

Reputation: 1575

"Run Keyword And Return Status" can also be used to get True/False status as below:

${condition} =     Run keyword And Return Status    Wait Until Page Contains Element    ${locator}    timeout=5   error=false

Upvotes: 4

Pekka
Pekka

Reputation: 2270

Wait Until Page Contains Element does not return anything but will raise error if element is not found. One workaround is to wrap Run Keyword And Ignore Error around it.

*** Settings ***
Library    Selenium2Library

*** Test Cases ***
Test wait
    Open Browser        http://www.google.com/    gc
    ${result}    ${condition}=    Run Keyword And Ignore Error    Wait Until Page Contains    Stackoverflow    timeout=2   error=false
    Run Keyword if  '${condition}'=='false'       Log    clicking
    Close All Browsers

Upvotes: 7

Related Questions