-
Notifications
You must be signed in to change notification settings - Fork 2.3k
WIP - start fixing the debugger w/ selenium 3.0 #3788
Conversation
# Upgrade to selenium-webdriver 3.0.1 Note: with the upgrade, there might have breaking changes. Please see the selenium-webdriver changelog. - See [selenium-webdriver changelog](https://github.com/SeleniumHQ/selenium/blob/master/javascript/node/selenium-webdriver/CHANGES.md) ### Removed methods - Removed method `WebDriver.prototype.isElementPresent` - Removed method `WebElement.prototype.getRawId` - Removed `getInnerHtml` and `getOutterHtml` ### Dependencies and versions - Dependency required for upgrade: use `[email protected]`. - Selenium-webdriver requires node version 6+, updating travis and circle yml to use node 6 and 7. ### Errors - Use `instanceof` selenium-webdriver error instead of error code. Selenium-webdriver error codes have been deprecated. ### DriverProviders - Use executor with selenium-webdriver from `lib/http`. Deferred executor has been deprecated. - Fix quitting `driverProviders`. When calling `webdriver.quit`, the control flow is shutdown and will throw an error. - Driver provider for direct connect has been modified to use `ServiceBuilder` and to call the `Service` to `createSession` - Note: Since this upgrade is still using FF 47, direct connect for Firefox is required to pass "marionette: false" in the capabilities. If you do not pass marionette to false, it will look for gecko driver in the PATH. - Added a TODO to support FF after 48+ with direct connect and gecko driver. ### Managing Browser - Updated `browser.manage().addCookie('testcookie', 'Jane-1234');` to use `browser.manage().addCookie({name:'testcookie', value: 'Jane-1234'});` ### Debugging - Updated debug commons for breakpoint updated to selenium-webdriver `lib/http` line 432. - Debugger currently does not work. So `elementExplorer` for this current commit does not work. Additional work is required. - Since debugger does not work, interactive tests were disabled in `scripts/tests.js` ### Mocha - For mocha tests, `selenium-webdriver/testing` uses the global `it` and cannot be reassigned as Protractor's global `it`. Some code has been copied / modified to `lib/frameworks/mocha` to make this work. ### Setup Notes: - Capabilities for Firefox 47 requires setting marionette to false. - Setup still requires selenium standalone server 2.53.1 for Firefox tests. Firefox version used is 47. - Using selenium standalone server 3, with Firefox 48+ tests fail with gecko driver still do not work. - Selenium standalone 3 + FF 49 + gecko driver 0.11.1 does not work - Selenium standalone 3 + FF 48 + gecko driver 0.11.1 appears to work for a single test but after it quits, selenium standalone no longer works with firefox. When firefox 48 exists, logs show the following: ``` 20:01:14.814 INFO - Executing: [delete session: e353fa1b-e266-4ec3-afb3-88f11a82473a]) [GFX1-]: Receive IPC close with reason=AbnormalShutdown [Child 30665] ###!!! ABORT: Aborting on channel error.: file /builds/slave/m-rel-m64-00000000000000000000/build/src/ipc/glue/MessageChannel.cpp, line 2052 [Child 30665] ###!!! ABORT: Aborting on channel error.: file /builds/slave/m-rel-m64-00000000000000000000/build/src/ipc/glue/MessageChannel.cpp, line 2052 ```
We found a Contributor License Agreement for you (the sender of this pull request) and all commit authors, but as best as we can tell these commits were authored by someone else. If that's the case, please add them to this pull request and have them confirm that they're okay with these commits being contributed to Google. If we're mistaken and you did author these commits, just reply here to confirm. |
1 similar comment
We found a Contributor License Agreement for you (the sender of this pull request) and all commit authors, but as best as we can tell these commits were authored by someone else. If that's the case, please add them to this pull request and have them confirm that they're okay with these commits being contributed to Google. If we're mistaken and you did author these commits, just reply here to confirm. |
OK here's where I've got so far (changes pushed): The initial hooks work fine, but things start to fall apart after a few commands are entered by the user. This is because the empty hook in-between commands isn't getting executed properly - it's listed as blocked in the control flow, and it isn't sent to the selenium server. Then the commands can get sent all at once, causing a very unhappy selenium server. I'm tempted to say that this just isn't working with the control flow anymore and we need to burn it and re-think how we do debugging. |
I think that this incremental update is hopeless - trying a new approach at #3828 |
Closing in favor of 3828 |
No description provided.