{"action":"opened","issue":{"url":"https://api.github.com/repos/jnicklas/capybara/issues/1543","labels_url":"https://api.github.com/repos/jnicklas/capybara/issues/1543/labels{/name}","comments_url":"https://api.github.com/repos/jnicklas/capybara/issues/1543/comments","events_url":"https://api.github.com/repos/jnicklas/capybara/issues/1543/events","html_url":"https://github.com/jnicklas/capybara/issues/1543","id":92618689,"number":1543,"title":"Understanding #all #first and synchronization.","user":{"login":"metaskills","id":2381,"avatar_url":"https://avatars.githubusercontent.com/u/2381?v=3","gravatar_id":"","url":"https://api.github.com/users/metaskills","html_url":"https://github.com/metaskills","followers_url":"https://api.github.com/users/metaskills/followers","following_url":"https://api.github.com/users/metaskills/following{/other_user}","gists_url":"https://api.github.com/users/metaskills/gists{/gist_id}","starred_url":"https://api.github.com/users/metaskills/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/metaskills/subscriptions","organizations_url":"https://api.github.com/users/metaskills/orgs","repos_url":"https://api.github.com/users/metaskills/repos","events_url":"https://api.github.com/users/metaskills/events{/privacy}","received_events_url":"https://api.github.com/users/metaskills/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-07-02T11:54:00Z","updated_at":"2015-07-02T11:54:00Z","closed_at":null,"body":"This is a call for a behavior gut check. I am a long time user of Capybara and thought I was pretty versed in Capybara's [synchronization methods](http://www.elabs.se/blog/53-why-wait_until-was-removed-from-capybara). Recently it became obvious to me that #all and #first DLS methods both do not do an implicit wait or sync. Is this intended? It kind of feels right but I never fully understood this.\r\n\r\nIf it helps, I use Capybara mostly with Minitest and the DSL mixed into rails integration test cases. Here is a pry session where I was learning about this behavior:\r\n\r\n```ruby\r\n[21] pry(#MyIntegrationTest::whatever)> $ page.current_scope.all '.doesnotexist'\r\n=> []\r\n[21] pry(#MyIntegrationTest::whatever)> $ page.current_scope.first '.doesnotexist', wait: 2\r\n=> []\r\n[21] pry(#MyIntegrationTest::whatever)> $ page.current_scope.all\r\n\r\nFrom: /Users/.../capybara-2.4.4/lib/capybara/node/finders.rb @line 144:\r\nOwner Capybara::Node::Finders\r\nVisibility: public\r\nNumber of lines: 8\r\n\r\ndef all(*args)\r\n  query = Capybara::Query.new(*args)\r\n  synchronize(query.wait) do\r\n    result = query.resolve_for(self)\r\n    raise Capybara::ExpectationNotMet, result.failure_message unless result.matches_count?\r\n    result\r\n  end\r\nend\r\n```\r\n\r\nIn each case the #all and #first did not wait. But reading the code, I felt it should. Could you throw down some knowledge? Also... thank you so much for all your work here. Huge fan."}}