Question

I'm using frank-cucumber to test my iOS app and have run into some problems when my test is of the following form

When I wait to see "OpenButton"

If a UIView with the accessibility label "OpenButton" never shows up, instead of timing out and reporting an error on the test after WAIT_TIMEOUT is hit, cucumber just hangs.

Since I don't see WAIT_TIMEOUT even used in the core_frank_steps.rb I wonder if this is the reason why any test case of the form "When I wait.." will just hang.

Note: core_frank_steps.rb can be found here

Was it helpful?

Solution

# Polls every 0.1s , returns true when element is present
# @param selector [String] Frankly selector e.g. view marked:''
# @param timeout [Int] seconds to wait
def wait_for_element(selector, timeout=10)

  #the return value of the yield expression isn't working, so we use a closure
  res = nil
  wait_until(:timeout => timeout, :message => "Waited for element #{selector} to exist") {
    res = element_exists(selector)
  }
  res
end

The above function helped us get around some of these wait scenarios.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top