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

[py] Use a capability to switch engines for Edge #8096

Merged
merged 7 commits into from
Mar 10, 2020

Conversation

bwalderman
Copy link
Contributor

Description

Based on the discussion in #7977 we've decided to use a new "ms:edgeChromium" boolean capability key for EdgeDriver which tells the driver service whether to launch Edge Legacy or Chromium. This change updates the Edge .Options class to use this capability in place of the previous is_legacy constructor parameter.

The change also includes some cleanup in the Edge and Chromium drivers. The 'verbose' flag is now used all the time instead of being legacy-only. The duplicate page_load_strategy getter/setter has been removed since the base ChromiumDriver class takes care of this. The Chromium driver no longer takes the deprecated 'executable_path' parameter. The subclasses will always provide a service object, so this param shouldn't be needed. This shouldn't be a breaking change since ChromiumDriver is fairly new and isn't present in a stable release yet.

Lastly, added bazel test targets for Edge and Edge Chromium.

Motivation and Context

Using a capability key allows EdgeOptions to work with a RemoteWebDriver. A python client can now configure the EdgeOptions for either Legacy or Chromium, and the remote Selenium server can make use of the capability to launch the correct Edge driver service. Previously, the is_legacy property on the EdgeOptions controlled how the EdgeOptions were serialized, but the serialized capabilities didn't carry any information about what flavor of Edge the client wants to use. This meant that the client could only safely send EdgeOptions to a remote server if they knew that a compatible Edge service was already running on that server.

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)

Checklist

  • I have read the contributing document.
  • My change requires a change to the documentation.
  • I have updated the documentation accordingly.
  • I have added tests to cover my changes.
  • All new and existing tests passed.

@AutomatedTester AutomatedTester self-assigned this Mar 9, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants