Skip to content

fix(webdriverio): reconnect to bidi on reloadSession#13838

Merged
christian-bromann merged 4 commits intomainfrom
cb/fix-reloadSession
Nov 20, 2024
Merged

fix(webdriverio): reconnect to bidi on reloadSession#13838
christian-bromann merged 4 commits intomainfrom
cb/fix-reloadSession

Conversation

@christian-bromann
Copy link
Member

Proposed changes

fixes #13789

Types of changes

  • Polish (an improvement for an existing feature)
  • Bugfix (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 not work as expected)
  • Documentation update (improvements to the project's docs)
  • Specification changes (updates to WebDriver command specifications)
  • Internal updates (everything related to internal scripts, governance documentation and CI files)

Checklist

  • I have read the CONTRIBUTING doc
  • I have added tests that prove my fix is effective or that my feature works
  • I have added the necessary documentation (if appropriate)
  • I have added proper type definitions for new commands (if appropriate)

Backport Request

//: # (The current main branch is the development branch for WebdriverIO v9. If your change should be released to the current major version of WebdriverIO (v8), please raise another PR with the same changes against the v8 branch.)

  • This change is solely for v9 and doesn't need to be back-ported
  • Back-ported PR at #XXXXX

Further comments

n/a

Reviewers: @webdriverio/project-committers

@christian-bromann christian-bromann added the PR: Bug Fix 🐛 PRs that contain bug fixes label Oct 30, 2024
@pkg-pr-new
Copy link

pkg-pr-new bot commented Oct 30, 2024

Open in Stackblitz

eslint-plugin-wdio

pnpm add https://pkg.pr.new/webdriverio/webdriverio/eslint-plugin-wdio@13838

@wdio/browser-runner

pnpm add https://pkg.pr.new/webdriverio/webdriverio/@wdio/browser-runner@13838

@wdio/appium-service

pnpm add https://pkg.pr.new/webdriverio/webdriverio/@wdio/appium-service@13838

@wdio/browserstack-service

pnpm add https://pkg.pr.new/webdriverio/webdriverio/@wdio/browserstack-service@13838

@wdio/allure-reporter

pnpm add https://pkg.pr.new/webdriverio/webdriverio/@wdio/allure-reporter@13838

@wdio/cli

pnpm add https://pkg.pr.new/webdriverio/webdriverio/@wdio/cli@13838

@wdio/concise-reporter

pnpm add https://pkg.pr.new/webdriverio/webdriverio/@wdio/concise-reporter@13838

@wdio/config

pnpm add https://pkg.pr.new/webdriverio/webdriverio/@wdio/config@13838

@wdio/cucumber-framework

pnpm add https://pkg.pr.new/webdriverio/webdriverio/@wdio/cucumber-framework@13838

@wdio/dot-reporter

pnpm add https://pkg.pr.new/webdriverio/webdriverio/@wdio/dot-reporter@13838

@wdio/firefox-profile-service

pnpm add https://pkg.pr.new/webdriverio/webdriverio/@wdio/firefox-profile-service@13838

@wdio/globals

pnpm add https://pkg.pr.new/webdriverio/webdriverio/@wdio/globals@13838

@wdio/jasmine-framework

pnpm add https://pkg.pr.new/webdriverio/webdriverio/@wdio/jasmine-framework@13838

@wdio/json-reporter

pnpm add https://pkg.pr.new/webdriverio/webdriverio/@wdio/json-reporter@13838

@wdio/junit-reporter

pnpm add https://pkg.pr.new/webdriverio/webdriverio/@wdio/junit-reporter@13838

@wdio/lighthouse-service

pnpm add https://pkg.pr.new/webdriverio/webdriverio/@wdio/lighthouse-service@13838

@wdio/local-runner

pnpm add https://pkg.pr.new/webdriverio/webdriverio/@wdio/local-runner@13838

@wdio/logger

pnpm add https://pkg.pr.new/webdriverio/webdriverio/@wdio/logger@13838

@wdio/mocha-framework

pnpm add https://pkg.pr.new/webdriverio/webdriverio/@wdio/mocha-framework@13838

@wdio/protocols

pnpm add https://pkg.pr.new/webdriverio/webdriverio/@wdio/protocols@13838

@wdio/repl

pnpm add https://pkg.pr.new/webdriverio/webdriverio/@wdio/repl@13838

@wdio/reporter

pnpm add https://pkg.pr.new/webdriverio/webdriverio/@wdio/reporter@13838

@wdio/runner

pnpm add https://pkg.pr.new/webdriverio/webdriverio/@wdio/runner@13838

@wdio/sauce-service

pnpm add https://pkg.pr.new/webdriverio/webdriverio/@wdio/sauce-service@13838

@wdio/shared-store-service

pnpm add https://pkg.pr.new/webdriverio/webdriverio/@wdio/shared-store-service@13838

@wdio/smoke-test-cjs-service

pnpm add https://pkg.pr.new/webdriverio/webdriverio/@wdio/smoke-test-cjs-service@13838

@wdio/smoke-test-reporter

pnpm add https://pkg.pr.new/webdriverio/webdriverio/@wdio/smoke-test-reporter@13838

@wdio/smoke-test-service

pnpm add https://pkg.pr.new/webdriverio/webdriverio/@wdio/smoke-test-service@13838

@wdio/spec-reporter

pnpm add https://pkg.pr.new/webdriverio/webdriverio/@wdio/spec-reporter@13838

@wdio/static-server-service

pnpm add https://pkg.pr.new/webdriverio/webdriverio/@wdio/static-server-service@13838

@wdio/sumologic-reporter

pnpm add https://pkg.pr.new/webdriverio/webdriverio/@wdio/sumologic-reporter@13838

@wdio/testingbot-service

pnpm add https://pkg.pr.new/webdriverio/webdriverio/@wdio/testingbot-service@13838

@wdio/utils

pnpm add https://pkg.pr.new/webdriverio/webdriverio/@wdio/utils@13838

@wdio/types

pnpm add https://pkg.pr.new/webdriverio/webdriverio/@wdio/types@13838

@wdio/webdriver-mock-service

pnpm add https://pkg.pr.new/webdriverio/webdriverio/@wdio/webdriver-mock-service@13838

webdriver

pnpm add https://pkg.pr.new/webdriverio/webdriverio/webdriver@13838

webdriverio

pnpm add https://pkg.pr.new/webdriverio/webdriverio@13838

commit: e29c75f

@christian-bromann christian-bromann merged commit 5ba7770 into main Nov 20, 2024
@christian-bromann christian-bromann deleted the cb/fix-reloadSession branch November 20, 2024 18:57
@damencho
Copy link
Contributor

damencho commented Nov 22, 2024

Hey @christian-bromann is reloadSession working with multiRemote? I was just testing it (updated to 9.3.1) but when I do a reloadSession to one of the multiremote browsers I get the following error when trying to navigate to some url:

Error: WebDriver Bidi command "browsingContext.navigate" failed with error: no such frame - Context 35D912DA7B709EBFB778772532FBE886 not found

@christian-bromann
Copy link
Member Author

@damencho do you have a reproduction case?

@damencho
Copy link
Contributor

I will prepare one and will add it here.

@damencho
Copy link
Contributor

Hum, it behaves differently in the simple case, it just hangs without navigating and timeouts after jasmineOpts.defaultTimeoutInterval.

await multiremotebrowser.getInstance('b1').url('https://example.com');
await multiremotebrowser.getInstance('b1').reloadSession();
await multiremotebrowser.getInstance('b1').url('https://example2.com');

I'm getting the navigate error no such frame - Context in my complex test case because there is an iframe and I am using switchFrame.
I will need more time to make an example for that. I will come back to you.

@damencho
Copy link
Contributor

damencho commented Nov 23, 2024

Ups. I forgot to update the versions to 9.3.1 in the example. Yep, I reproduce it.

capabilities: {
        b1: {
            capabilities: {
                browserName: 'chrome'
            }
        },
        b2: {
            capabilities: {
                browserName: 'chrome'
            }
        }
    },
    maxInstances: 1,

And in the test:

await multiremotebrowser.getInstance('b1').url('https://example.com');
await multiremotebrowser.getInstance('b1').reloadSession();
await multiremotebrowser.getInstance('b1').url('https://example2.com');

Error:

[MultiremoteBrowser on chrome and chrome #0-0] Error: WebDriver Bidi command "browsingContext.navigate" failed with error: no such frame - Context 570ADCF01AC02F043BD87109989D8751 not found

package.json:

    "@wdio/cli": "9.3.1",
    "@wdio/dot-reporter": "9.2.14",
    "@wdio/globals": "9.3.1",
    "@wdio/jasmine-framework": "9.3.1",
    "@wdio/local-runner": "9.3.1",
    "@wdio/spec-reporter": "9.2.14",
    "webdriverio": "9.3.1"

@damencho
Copy link
Contributor

The complete example:

simple.zip

npm i
npm run test-simple

@christian-bromann
Copy link
Member Author

Thanks @damencho , we are working on a fix for this in #13906

@damencho
Copy link
Contributor

Thank you for letting me know!

@nair-sumesh
Copy link
Contributor

This is a blocker for my test cases.
Request you to kindly resolve this ASAP.

@nair-sumesh
Copy link
Contributor

Sorry, I am bit confused.
Which one out of cb/session-manager and cb/fix-reloadSession is responsible to resolve this issue.

@christian-bromann
Copy link
Member Author

@nair-sumesh it's cb/session-manager

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

PR: Bug Fix 🐛 PRs that contain bug fixes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[🐛 Bug]: Timeout error with reloadSession API

4 participants