2

There's a waitForInvalid() but what about a waitForValid() function? For some reason, push/popTimeout doesn't work for me in many cases. Apple?

dtuckernet
  • 7,817
  • 5
  • 39
  • 54
ma11hew28
  • 121,420
  • 116
  • 450
  • 651

2 Answers2

6

If the element is "valid" but not "visible" that might return too early. This should wait until its visible and valid.

UIATarget.localTarget().pushTimeout(20);
window.navigationBar().name()["Welcome"].withValueForKey(1, "isVisible");
UIATarget.localTarget().popTimeout();

or

UIATarget.localTarget().pushTimeout(20);
window.navigationBar().name().firstWithPredicate("name is 'Welcome' and isVisible == '1'")
UIATarget.localTarget().popTimeout();
011
  • 81
  • 1
  • 1
4

When you try to access a particular element directly, there is a default wait time of 5 seconds. You can change the default time as follows.

UIATarget.localTarget().pushTimeout(20);
window.navigationBar().name()["Welcome"];
UIATarget.localTarget().popTimeout();

This will make your instruments wait up to 20 seconds until the name of the navigation bar has changed to "Welcome."

Chris Frederick
  • 5,482
  • 3
  • 36
  • 44