BrowserStack Automate: Resolving Conflicts Between Legacy JSON Wire Protocol and W3C Capabilities in Selenium 4
0 reputation · 17 Sept 2021, 07:31 UTC
0 reputation · 17 Sept 2021, 07:31 UTC
Ensuring consistent session configuration when a test script supplies both legacy JSON Wire Protocol capabilities (e.g., browser, platform) and W3C‑compliant capabilities (e.g., browserName, platformName) is the primary goal. BrowserStack Automate’s documentation states that Selenium 4 sessions must use W3C capabilities, but it does not specify how the platform handles a capabilities object that contains both legacy and W3C entries.
The platform internally maps known legacy keys to their W3C equivalents, but the merging strategy for custom or vendor‑prefixed capabilities (such as bstack:options) remains undocumented. Additionally, placing bstack:options at the top level in a legacy‑style object may be silently ignored when the session is created via Selenium 4.
The key uncertainty is whether BrowserStack prioritizes W3C values over legacy ones, merges the two sets, or applies an undocumented precedence rule that could lead to inconsistent session behavior across browser/OS combinations.
To clarify the behavior, the following questions need to be answered:
1. When both legacy and W3C capabilities are present, which values are used to launch the browser?
2. Does BrowserStack merge the two capability sets or prioritize one over the other?
3. Are there documented error responses or logs that indicate a conflict between legacy and W3C capabilities?
A thoughtful contribution can make all the difference. Be the first to share one.
Use comments to ask for clarification. Post a solution as an answer.
No question comments on this page.