     defaultSettings =
       find: @test.driver.findElement.bind(@test.driver)
       untilLocated: selenium.until.elementLocated
+      untilReady: selenium.until.elementIsVisible
       buildWaitMessage: (locator) ->
         "Looking for #{JSON.stringify(locator)}"
       buildFoundMessage: (locator, result) ->


    @_for(settings)(locator, ms)

  # Waits for an element to be available and bumps up the timeout to be at least 60sec from now
  for: (locator, ms = 60 * 1000) ->
    @_for()(locator, ms)

  click: (locator, ms) =>
    @test.utils.verboseWrap "Wait and click #{JSON.stringify(locator)}", =>

        result

    settings = _.extend({}, defaultSettings, settings)
    {find, untilLocated, untilReady, buildWaitMessage, buildFoundMessage, buildDisplayMessage, filter} = settings

    (locator, ms = 60 * 1000) =>
      locator = @test.utils.toLocator(locator)

      @giveTime ms, =>
        @until buildWaitMessage(locator), untilLocated(locator)
