{"action":"created","issue":{"url":"https://api.github.com/repos/nightwatchjs/nightwatch/issues/638","repository_url":"https://api.github.com/repos/nightwatchjs/nightwatch","labels_url":"https://api.github.com/repos/nightwatchjs/nightwatch/issues/638/labels{/name}","comments_url":"https://api.github.com/repos/nightwatchjs/nightwatch/issues/638/comments","events_url":"https://api.github.com/repos/nightwatchjs/nightwatch/issues/638/events","html_url":"https://github.com/nightwatchjs/nightwatch/issues/638","id":106384082,"number":638,"title":"Feature request: Promise-based client interface","user":{"login":"mbixby","id":758691,"avatar_url":"https://avatars.githubusercontent.com/u/758691?v=3","gravatar_id":"","url":"https://api.github.com/users/mbixby","html_url":"https://github.com/mbixby","followers_url":"https://api.github.com/users/mbixby/followers","following_url":"https://api.github.com/users/mbixby/following{/other_user}","gists_url":"https://api.github.com/users/mbixby/gists{/gist_id}","starred_url":"https://api.github.com/users/mbixby/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbixby/subscriptions","organizations_url":"https://api.github.com/users/mbixby/orgs","repos_url":"https://api.github.com/users/mbixby/repos","events_url":"https://api.github.com/users/mbixby/events{/privacy}","received_events_url":"https://api.github.com/users/mbixby/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":3,"created_at":"2015-09-14T16:49:07Z","updated_at":"2016-02-22T17:54:49Z","closed_at":null,"body":"This would allow for interleaving synchronous and asynchronous code with nicer syntax. `Promise.all` could be used to parallelize commands. Adding breakpoints in between commands would work as expected, making live coding easier.\r\n\r\n```javascript\r\nawait client.url('http://www.google.com');\r\nawait client.waitForElementVisible('body', 1000);\r\nconst title = await client.title();\r\nexpect(title).to.contain('Google');\r\n```\r\n(similarly with `yield` or plain promises)\r\n\r\nSee https://github.com/theintern/leadfoot/blob/master/Command.js for more examples.\r\n\r\nIs this realistic?\r\n\r\nMay be related to #121 (conditional test parts)."},"comment":{"url":"https://api.github.com/repos/nightwatchjs/nightwatch/issues/comments/187293159","html_url":"https://github.com/nightwatchjs/nightwatch/issues/638#issuecomment-187293159","issue_url":"https://api.github.com/repos/nightwatchjs/nightwatch/issues/638","id":187293159,"user":{"login":"volodya1805","id":4226642,"avatar_url":"https://avatars.githubusercontent.com/u/4226642?v=3","gravatar_id":"","url":"https://api.github.com/users/volodya1805","html_url":"https://github.com/volodya1805","followers_url":"https://api.github.com/users/volodya1805/followers","following_url":"https://api.github.com/users/volodya1805/following{/other_user}","gists_url":"https://api.github.com/users/volodya1805/gists{/gist_id}","starred_url":"https://api.github.com/users/volodya1805/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/volodya1805/subscriptions","organizations_url":"https://api.github.com/users/volodya1805/orgs","repos_url":"https://api.github.com/users/volodya1805/repos","events_url":"https://api.github.com/users/volodya1805/events{/privacy}","received_events_url":"https://api.github.com/users/volodya1805/received_events","type":"User","site_admin":false},"created_at":"2016-02-22T17:54:49Z","updated_at":"2016-02-22T17:54:49Z","body":"+1"}}