-
Notifications
You must be signed in to change notification settings - Fork 116
Closed
Labels
DiscussionP0Replacementreplace webdriver-manager with replacementreplace webdriver-manager with replacement
Milestone
Description
Replacing instead of fixing
Back in August, I wanted to address several issues with this project: not enough testing, unusual side effects, GitHub authtoken limitations (with GeckoDriver), etc. Some of the highlights of these changes include:
- unit, integration, proxy, and e2e tests
- removed side effects from code
- added support for GitHub authtokens
- CI runs every night so failures on driver - browser mismatch will be found sooner
- you can use webdriver-manager as a node module as well as a CLI.
Breaking changes
This is not feature parity yet. We will not have mobile support. Instead of hacking something together quickly, I want to be more thoughtful about how this is done.
The driving force to make this change now is to not block Protractor selenium4 milestone progress (see https://github.com/angular/protractor/milestone/45). Currently directConnect is not working due to version incompatibility between ChromeDriver and Chrome. See the following snippet:
[00:55:33] I/direct - Using ChromeDriver directly...
[00:55:33] E/runner - Unable to start a WebDriver session.
[00:55:33] E/launcher - Error: SessionNotCreatedError: session not created: Chrome version must be between 70 and 73
(Driver info: chromedriver=2.45.615279 (12b89733300bd268cff3b78fc76cb8f3a7cc44e5),platform=Linux 4.4.0-139-generic x86_64)
at Object.checkLegacyResponse (/home/circleci/project/node_modules/selenium-webdriver/lib/error.js:546:15)
at parseHttpResponse (/home/circleci/project/node_modules/selenium-webdriver/lib/http.js:509:13)
at doSend.then.response (/home/circleci/project/node_modules/selenium-webdriver/lib/http.js:441:30)
at <anonymous>
at process._tickCallback (internal/process/next_tick.js:188:7)
[00:55:33] E/launcher - Process exited with error code 100
>>> fail: Error: expecting exit code: 0, actual: 100
Steps to replacing this node module
Here's the logical order to replace this node module in place.
- (12/11/2018) Fork the master branch to a separate branch called "legacy". This will help maintain the old code base and commit history.
- (12/11/2018) Add new code base to the "replacement" branch.
- (12/11/2018) Use webdriver-manager-replacement (workaround for current publish permissions)
- (12/14/2018) Create a 13.0.0-beta release, making sure that this is not marked as the "latest" in npmjs.
- (12/21/2018) Add missing documentation and design documentation / decisions in markdown.
- (01/03/2019) After Protractor's official release, move the replacement branch to be the new master branch.
Metadata
Metadata
Assignees
Labels
DiscussionP0Replacementreplace webdriver-manager with replacementreplace webdriver-manager with replacement