Update: Working on a WebdriverIO service to make this easy - wdio-aws-device-farm-service
AWS Device Farm recently announced support for desktop browser testing using Selenium starting January 14, 2020. The desktop browser service appears to be very basic and has limitations when compared to SauceLabs or CrossBrowserTesting, the other two services that I have been evaluating as part of my role at Wambi.
Since the desktop browser service is fairly new, there is no service
available for it in WebdriverIO. So to make it work, you have to use the
aws-sdk to generate the remote hub URL and then
use a custom test runner or a launcher
to use it. The launcher is required because, based on my understanding, the current implementation of the
runner expects a top-level
config object and this object does not allow us to integrate the async
inside it. The calls have to be made through the launcher and then passed down to the final
As part of my journey to learn Node.js, I have figured it all out and documented it in this post. I am hoping to
wdio-device-farm-service soon, but for now the following works well :).