diff --git a/cli/CHANGELOG.md b/cli/CHANGELOG.md index 5d9dc73a08..129ce67271 100644 --- a/cli/CHANGELOG.md +++ b/cli/CHANGELOG.md @@ -22,6 +22,7 @@ _Released 5/20/2025 (PENDING)_ **Dependency Updates:** - Upgraded `trash` from `5.2.0` to `7.2.0`. Addressed in [#31667](https://github.com/cypress-io/cypress/pull/31667). +- Upgraded `webdriver` from `9.11.0` to `9.14.0`. Addressed in [#31689](https://github.com/cypress-io/cypress/pull/31689). ## 14.3.3 diff --git a/packages/server/lib/browsers/bidi_automation.ts b/packages/server/lib/browsers/bidi_automation.ts index f89395ddda..e1db574661 100644 --- a/packages/server/lib/browsers/bidi_automation.ts +++ b/packages/server/lib/browsers/bidi_automation.ts @@ -13,6 +13,7 @@ import type { } from 'webdriver/build/bidi/localTypes' import { bidiKeyPress } from '../automation/commands/key_press' +import type Protocol from 'devtools-protocol' const debug = debugModule('cypress:server:browsers:bidi_automation') const debugVerbose = debugModule('cypress-verbose:server:browsers:bidi_automation') @@ -178,7 +179,7 @@ export class BidiAutomation { headers: parsedHeaders, resourceType, originalResourceType: params.request.initiatorType || params.request.destination, - initiator: params.initiator, + initiator: params.initiator as Protocol.Network.Initiator, // Since we are NOT using CDP, we set the values to 0 to indicate that we do not have this information. // This is important when determining pre-request timeout and removal behavior cdpRequestWillBeSentTimestamp: 0, diff --git a/packages/server/package.json b/packages/server/package.json index 4cee3fafa1..60ef3ad542 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -135,7 +135,7 @@ "url-parse": "1.5.10", "uuid": "8.3.2", "wait-port": "1.1.0", - "webdriver": "9.11.0", + "webdriver": "9.14.0", "webpack-virtual-modules": "0.5.0", "widest-line": "3.1.0" }, diff --git a/packages/server/patches/@wdio+protocols+9.14.0.patch b/packages/server/patches/@wdio+protocols+9.14.0.patch new file mode 100644 index 0000000000..6de9073ee6 --- /dev/null +++ b/packages/server/patches/@wdio+protocols+9.14.0.patch @@ -0,0 +1,18 @@ +diff --git a/node_modules/@wdio/protocols/build/index.js b/node_modules/@wdio/protocols/build/index.js +index 374e3dd..9c820d0 100644 +--- a/node_modules/@wdio/protocols/build/index.js ++++ b/node_modules/@wdio/protocols/build/index.js +@@ -5276,9 +5276,11 @@ var gecko_default = { + ], + parameters: [ + { +- name: "addon", ++ // cypress uses 'path' over 'addon' to avoid zipping the extension, ++ // which is easier for cypress to incorporate and doesn't break users ++ name: "path", + type: "string", +- description: "base64 string of the add on file", ++ description: "path to the extension", + required: true + }, + { diff --git a/packages/server/patches/@wdio+protocols+9.7.0.patch b/packages/server/patches/@wdio+protocols+9.7.0.patch deleted file mode 100644 index d0b00d5de8..0000000000 --- a/packages/server/patches/@wdio+protocols+9.7.0.patch +++ /dev/null @@ -1,79 +0,0 @@ -diff --git a/node_modules/@wdio/protocols/README.md b/node_modules/@wdio/protocols/README.md -deleted file mode 100644 -index eea42bf..0000000 ---- a/node_modules/@wdio/protocols/README.md -+++ /dev/null -@@ -1,55 +0,0 @@ --WebdriverIO Protocol Helper --=========================== -- --This package stores the definition for various automation protocols such as [WebDriver](https://w3c.github.io/webdriver/) or vendor specific protocol extensions like for [SauceLabs](https://saucelabs.com/). Unless you are interested in generating a WebDriver client there should be no reason why you should need this package. This package holds the definition of the following protocols: -- --- [WebDriver](https://w3c.github.io/webdriver/) --- [JSON Wire Protocol](https://github.com/SeleniumHQ/selenium/wiki/JsonWireProtocol) --- [Appium](http://appium.io/) --- [Mobile JSON Wire Protocol](https://github.com/SeleniumHQ/mobile-spec/blob/master/spec-draft.md) --- [Sauce Labs](https://saucelabs.com/) --- Chrome (WebDriver extension when running Chromedriver) --- Selenium (when running Selenium Standalone Server) -- --## Install -- --To install the package, run: -- --```sh --npm install @wdio/protocols --``` -- --## Usage -- --You can get data by importing the package as follows: -- --```js --import { WebDriverProtocol, MJsonWProtocol, AppiumProtocol, ChromiumProtocol, SauceLabsProtocol, SeleniumProtocol } from '@wdio/protocols' -- --/** -- * get description of session command -- */ --console.log(WebDriverProtocol['/session'].POST.description) --``` -- --## TypeScript Interfaces -- --The package exposes TypeScript interfaces for all protocols. You can use them for your own project as follows: -- --```ts --import type { WebDriverCommands } from '@wdio/protocol' -- --import { WebDriverCommands, WebDriverCommandsAsync } from './src' -- --const browser = {} as WebDriverCommands --browser.sendAlertText(true) --// fails with "Argument of type 'boolean' is not assignable to parameter of type 'string'.ts(2345)" -- --const asyncBrowser = {} as WebDriverCommandsAsync --const a = await asyncBrowser.getTitle() --type foo = typeof a // string --``` -- ------ -- --For more information on WebdriverIO see the [homepage](https://webdriver.io). -diff --git a/node_modules/@wdio/protocols/build/index.js b/node_modules/@wdio/protocols/build/index.js -index b33b8bd..0f7da3a 100644 ---- a/node_modules/@wdio/protocols/build/index.js -+++ b/node_modules/@wdio/protocols/build/index.js -@@ -5166,9 +5166,11 @@ var gecko_default = { - ], - parameters: [ - { -- name: "addon", -+ // cypress uses 'path' over 'addon' to avoid zipping the extension, -+ // which is easier for cypress to encorporate and doesn't break users -+ name: "path", - type: "string", -- description: "base64 string of the add on file", -+ description: "path to the extension", - required: true - }, - { diff --git a/packages/server/patches/@wdio+utils+9.11.0.patch b/packages/server/patches/@wdio+utils+9.14.0.patch similarity index 79% rename from packages/server/patches/@wdio+utils+9.11.0.patch rename to packages/server/patches/@wdio+utils+9.14.0.patch index cefe05ffbe..c20e3cb2ff 100644 --- a/packages/server/patches/@wdio+utils+9.11.0.patch +++ b/packages/server/patches/@wdio+utils+9.14.0.patch @@ -1,15 +1,5 @@ -diff --git a/node_modules/@wdio/utils/README.md b/node_modules/@wdio/utils/README.md -deleted file mode 100644 -index 3e8048a..0000000 ---- a/node_modules/@wdio/utils/README.md -+++ /dev/null -@@ -1,4 +0,0 @@ --WDIO Repl --========= -- --> A WDIO helper utility to provide a repl interface WebdriverIO diff --git a/node_modules/@wdio/utils/build/node.js b/node_modules/@wdio/utils/build/node.js -index c499226..92050be 100644 +index 6f664e3..4bb80b5 100644 --- a/node_modules/@wdio/utils/build/node.js +++ b/node_modules/@wdio/utils/build/node.js @@ -5,6 +5,7 @@ import cp2 from "node:child_process"; @@ -36,5 +26,5 @@ index c499226..92050be 100644 +// wrap in cypress debugger statement to avoid extraneous messages to the console +log2.setLevel(debugModule.enabled('cypress-verbose:server:browsers:webdriver') ? 'info' : 'silent') var DRIVER_WAIT_TIMEOUT = 10 * 1e3; + var DRIVER_RETRY_INTERVAL = 100; async function startWebDriver(options) { - if (process.env.WDIO_SKIP_DRIVER_SETUP) { diff --git a/yarn.lock b/yarn.lock index 4546b7818b..ad3e813941 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9187,14 +9187,14 @@ dependencies: vue-demi "*" -"@wdio/config@9.11.0": - version "9.11.0" - resolved "https://registry.yarnpkg.com/@wdio/config/-/config-9.11.0.tgz#d16ba92ad0fdde2573e5861d1bd1642f8fb53d5e" - integrity sha512-lBcmd7r+3nHJwIWDZ/cLIXcIL9rCmQmMvMWQ+Ykcrlc2khePX92VZyd0igptrZATJGD3tQ7VySR5Bozz6uMzyA== +"@wdio/config@9.14.0": + version "9.14.0" + resolved "https://registry.yarnpkg.com/@wdio/config/-/config-9.14.0.tgz#7a37e6ec541dd942e7cf04d2d65a9634c9529250" + integrity sha512-mW6VAXfUgd2j+8YJfFWvg8Ba/7g1Brr6/+MFBpp5rTQsw/2bN3PBJsQbWpNl99OCgoS8vgc5Ykps5ZUEeffSVQ== dependencies: "@wdio/logger" "9.4.4" - "@wdio/types" "9.10.1" - "@wdio/utils" "9.11.0" + "@wdio/types" "9.14.0" + "@wdio/utils" "9.14.0" deepmerge-ts "^7.0.3" glob "^10.2.2" import-meta-resolve "^4.0.0" @@ -9209,26 +9209,26 @@ loglevel-plugin-prefix "^0.8.4" strip-ansi "^7.1.0" -"@wdio/protocols@9.7.0": - version "9.7.0" - resolved "https://registry.npmjs.org/@wdio/protocols/-/protocols-9.7.0.tgz#2f2c0a7e371d65305e0d64980f63caa98ba5a4de" - integrity sha512-5DI8cqJqT9K6oQn8UpaSTmcGAl4ufkUWC5FoPT3oXdLjILfxvweZDf/2XNBCbGMk4+VOMKqB2ofOqKhDIB2nAg== +"@wdio/protocols@9.14.0": + version "9.14.0" + resolved "https://registry.yarnpkg.com/@wdio/protocols/-/protocols-9.14.0.tgz#5e4fd87413121cf6cc9164e13b096e565d01f0a9" + integrity sha512-inJR+G8iiFrk8/JPMfxpy6wA7rvMIZFV0T8vDN1Io7sGGj+EXX7ujpDxoCns53qxV4RytnSlgHRcCaASPFcecQ== -"@wdio/types@9.10.1": - version "9.10.1" - resolved "https://registry.yarnpkg.com/@wdio/types/-/types-9.10.1.tgz#89d3eb936ac2dc5675b01652ee9475e1ff31f325" - integrity sha512-/t1VXPU5Ad1FQjRUP0WlK7IR0dCTX5hSkul8SpCuUpWbeyI4Iol/Wx2b1YU6nS+Ydh78rJCyHxtV0eE5TM1rbw== +"@wdio/types@9.14.0": + version "9.14.0" + resolved "https://registry.yarnpkg.com/@wdio/types/-/types-9.14.0.tgz#50bde9f364d6b196d7d27edacf6825cee6241855" + integrity sha512-Zqc4sxaQLIXdI1EHItIuVIOn7LvPmDvl9JEANwiJ35ck82Xlj+X55Gd9NtELSwChzKgODD0OBzlLgXyxTr69KA== dependencies: "@types/node" "^20.1.0" -"@wdio/utils@9.11.0": - version "9.11.0" - resolved "https://registry.yarnpkg.com/@wdio/utils/-/utils-9.11.0.tgz#006234c865579e86b121998c78e47e86013de57d" - integrity sha512-chVbHqrjDlIKCLoAPLdrFK8Qozu/S+fbubqlyazohAKnouCUCa2goYs7faYR0lkmLqm92PllJS+KBRAha9V/tg== +"@wdio/utils@9.14.0": + version "9.14.0" + resolved "https://registry.yarnpkg.com/@wdio/utils/-/utils-9.14.0.tgz#963e0679730fe0473c760afddc335c157a839b5c" + integrity sha512-oJapwraSflOe0CmeF3TBocdt983hq9mCutLCfie4QmE+TKRlCsZz4iidG1NRAZPGdKB32nfHtyQlW0Dfxwn6RA== dependencies: "@puppeteer/browsers" "^2.2.0" "@wdio/logger" "9.4.4" - "@wdio/types" "9.10.1" + "@wdio/types" "9.14.0" decamelize "^6.0.0" deepmerge-ts "^7.0.3" edgedriver "^6.1.1" @@ -32186,18 +32186,18 @@ web-streams-polyfill@^3.0.3: resolved "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz#2073b91a2fdb1fbfbd401e7de0ac9f8214cecb4b" integrity sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw== -webdriver@9.11.0: - version "9.11.0" - resolved "https://registry.yarnpkg.com/webdriver/-/webdriver-9.11.0.tgz#12c33e6481ca3ddfbda61ca07fb445615b8f4c45" - integrity sha512-KQdI5sK+YwnUqol8MhvW9y6V+fhaW82KRhqMYnVCOrG4sJFWg7A9OIqR11Buco804HpzxyocRO6MnOQrNvP0vQ== +webdriver@9.14.0: + version "9.14.0" + resolved "https://registry.yarnpkg.com/webdriver/-/webdriver-9.14.0.tgz#b448d73ba36f24ab08882906fbb7081faa092d37" + integrity sha512-0mVjxafQ5GNdK4l/FVmmmXGUfLHCSBE4Ml2LG23rxgmw53CThAos6h01UgIEINonxIzgKEmwfqJioo3/frbpbQ== dependencies: "@types/node" "^20.1.0" "@types/ws" "^8.5.3" - "@wdio/config" "9.11.0" + "@wdio/config" "9.14.0" "@wdio/logger" "9.4.4" - "@wdio/protocols" "9.7.0" - "@wdio/types" "9.10.1" - "@wdio/utils" "9.11.0" + "@wdio/protocols" "9.14.0" + "@wdio/types" "9.14.0" + "@wdio/utils" "9.14.0" deepmerge-ts "^7.0.3" undici "^6.20.1" ws "^8.8.0"