Skip to content

Conversation

@valfirst
Copy link
Collaborator

Change list

Types of changes

What types of changes are you proposing/introducing to Java client?
Put an x in the boxes that apply

  • No changes in production code.
  • 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)

Details

Note: new release is needed.

@asolntsev
Copy link
Contributor

Ooops :)
It had to be backward-compatible change, leaving the previous constructor with the default timeout value...

}
var biDiConnection = new org.openqa.selenium.bidi.Connection(wsClient, biDiUri.toString());
this.biDi = new BiDi(biDiConnection);
this.biDi = new BiDi(biDiConnection, wsConfig.wsTimeout());
Copy link
Contributor

@mykola-mokhnach mykola-mokhnach Jan 26, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

does this limit the minimum supported selenium version to 4.40?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes.
Well, we could restore constructor new BiDi(biDiConnection) in Selenium 4.41.0.
Then we do a switch in Appium:

if <new constructor exists>
  return new BiDi(biDiConnection, timeout)
else
  return new BiDi(biDiConnection)

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it makes sense just to bump the minimum supported selenium version, otherwise we'll get a lot of complains and confusion. (It's not the first breaking change from Selenium)

PS: I've fixed README

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we use reflection to make it backward compatible?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes, do you want me to re-work the PR?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

but still the release will be needed

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes. Well, we could restore constructor new BiDi(biDiConnection) in Selenium 4.41.0. Then we do a switch in Appium:

if
return new BiDi(biDiConnection, timeout)
else
return new BiDi(biDiConnection)

this probably won't work. We'd need to load the class dynamically via Class.forName and also use an interface to access its methods, which will be a pain

I agree to @valfirst , it's not the first time we deal with such issues, yolo

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's not the first breaking change from Selenium

I don't know about other cases, but this specific was done occasionally. Sorry for that. :(

Don't you want to run Appium build against the night Selenium build (4.41.0-SNAPSHOT)?
In Selenide, we do the following:

  1. Every PR and main branch is built against latest stable Selenium (4.40.0)
  2. Additionally, every night we run a build from main branch against latest Selenium nightly build (4.41.0-SNAPSHOT)

It helps to detect backward incompatible changes on an early stage.

@valfirst valfirst force-pushed the fix-selenium-4-40-compatibility branch from c326126 to bab90bc Compare January 26, 2026 21:37
@valfirst valfirst merged commit 56a8d3d into appium:master Jan 26, 2026
13 of 14 checks passed
@valfirst valfirst deleted the fix-selenium-4-40-compatibility branch January 26, 2026 22:13
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.

3 participants