Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support non-browser-based WebDrivers in Selenium Grid 4 #9127

Closed
ChristoWolf opened this issue Feb 1, 2021 · 7 comments
Closed

Support non-browser-based WebDrivers in Selenium Grid 4 #9127

ChristoWolf opened this issue Feb 1, 2021 · 7 comments
Labels

Comments

@ChristoWolf
Copy link

🚀 Feature Proposal

Selenium Grid 4 should

  • support automatic detection of non-browser-based WebDrivers like all Appium based ones and WinAppDriver
  • and automatically distribute and handle according sessions.

Motivation

Selenium Grid 3 supported Appium integration via manually configuring nodes in Appium.
Now, with the new automatic detection mechanism (and to stay up-to-dated with Selenium Grid versions), creating Grid infrastructures seems a lot easier.
However, it seems (from reading documentation and conducting some quick experiments), that Selenium Grid 4 only works for browser-based WebDrivers (like ChromeDriver, GeckoDriver, etc.).
Appium-based/wrappable automation APIs and WinAppDriver (also Appium-wrappable, as it was done for Selenium Grid 3 integration) should offer the same Selenium Grid 4 integration.

Example

E.g. adding the WinAppDriver installation directory to the PATH environment variable should automatically detect the driver executable when starting a node and enable interaction with WinAppDriver sessions on that node (e.g. starting sessions, executing WebDriver-based scripts, session handling).

@diemol
Copy link
Member

diemol commented Feb 1, 2021

@ChristoWolf, we plan to do that through Appium. I have been in touch with the Appium team and we will work together once we have the beta-1 release. I will leave this issue open as a place holder, but probably most of the work needs to be done by the Appium team.

@ChristoWolf
Copy link
Author

ChristoWolf commented Feb 1, 2021

@diemol: Thanks for the quick response!
That's good news that this is already planned.

Just out of curiosity, could you please elaborate on why this would need to be done on the Appium side?
This seems unintuitive to me, as the Grid needs to be aware of available drivers, the drivers just execute the actual WebDriver API requests.
What am I missing here?

@diemol
Copy link
Member

diemol commented Feb 1, 2021

This would be done through Appium because that is what Appium does well, understand those drivers for mobile. Selenium Grid focuses on detecting browser drivers.

@ChristoWolf
Copy link
Author

This would be done through Appium because that is what Appium does well, understand those drivers for mobile. Selenium Grid focuses on detecting browser drivers.

Thanks for the clarification!
So I guess this means that if I want to combine Selenium Grid with WinAppDriver, there will always be the need for Appium in between.
Kind of hoped that it could be simpler.

@NnikK
Copy link

NnikK commented Aug 11, 2021

Hi @diemol, any news here?
Is there a way to configure Grid 4 to work with Appium?

diemol added a commit that referenced this issue Sep 10, 2021
This allows the configuration of a remote service through
an URL and an optional status endpoint, some stereotypes
are needed as well plus their max concurrency are needed
as well.

Partly solves #9127
Partly because docs are still needed and some adjustmets
to the UI too.
@diemol
Copy link
Member

diemol commented Sep 14, 2021

Initial support for this has landed and is available through the most recent prerelease.

We implemented a relay functionality for Grid, where a Node or a Standalone server can send back and forth commands to a WebDriver endpoint, represented by a service url. This means that an Appium server can be that endpoint, a standalone WinAppDriver or even a cloud provider.

Configuration options can be seen here and a Toml example can be seen here.

Looking forward to your feedback through a new issue or by joining our Slack/IRC channels.

@diemol diemol closed this as completed Sep 14, 2021
@github-actions
Copy link

This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.

@github-actions github-actions bot locked and limited conversation to collaborators Oct 15, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

4 participants