Instead of using continuation passing, WebDriverJS uses "promises" to track the state of each operation
Even for such a simple example - longer scripts could easily get out of hand. In order to provide an API that cleanly handles asynchronous actions without impeding readability,
ControlFlow allows users to focus on the imperative commands for their script without worrying about chaining together every single asynchronous action, which can be tedious and verbose
A task queue contains all of the tasks scheduled within a single turn of the JavaScript event loop. The control flow will create a new task queue the first time a task is scheduled within an event loop.
Promise Manager expose then and done
ONE THING TO NOTICE IS THAT WE STILL HAVE TO USE SELENIUM-WEBDRIVER TESTING MODULE
Upload Test, Cookie Test, Frame test.
Await helps readability and/or debuggability.Even without the promise manager, there are a few parts in the API that smooth over the async bits so you don't have to handle every promise. Mainly this is when creating/fetching a WebDriver, WebElement, or Alert instance.
Return HTTP status code of the baseURL of your app.
WebdriverIO user run their tests synchronously .. it makes things so much easier. Also most of the WebdriverIO user use the wdio testrunner to scale their tests.
Make sure sync: false in the config