You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Multiple ENOENT: no such file or directory errors occurred because the system could not find the specified files for creating binary links in various packages.
There were critical dependency warnings in the webpack build process indicating issues with how dependencies are requested or used.
A TypeError occurred in the download-driver.js script, specifically a failure to read properties of an undefined object, which suggests that the response object expected from a download operation was not properly received or handled.
Relevant error logs:
1: ##[group]Operating System2: Ubuntu
...
175: .../node_modules/@bazel/hide-bazel-files postinstall: Done176: .../node_modules/@bazel/typescript postinstall: Done177: .../node_modules/electron postinstall$ node install.js178: .../node_modules/electron postinstall$ node install.js179: .../node_modules/electron-chromedriver install$ node ./download-chromedriver.js180: .../node_modules/electron postinstall: Done181: .../node_modules/electron postinstall: Done182: .../node_modules/electron-chromedriver install: Done183: WARN Failed to create bin at /home/runner/work/selenium-ide/selenium-ide/packages/code-export-csharp-nunit/node_modules/.bin/side-code-export. ENOENT: no such file or directory, open '/home/runner/work/selenium-ide/selenium-ide/packages/side-code-export/dist/bin.js'184: WARN Failed to create bin at /home/runner/work/selenium-ide/selenium-ide/packages/code-export-java-junit/node_modules/.bin/side-code-export. ENOENT: no such file or directory, open '/home/runner/work/selenium-ide/selenium-ide/packages/side-code-export/dist/bin.js'185: WARN Failed to create bin at /home/runner/work/selenium-ide/selenium-ide/packages/code-export-csharp-commons/node_modules/.bin/side-code-export. ENOENT: no such file or directory, open '/home/runner/work/selenium-ide/selenium-ide/packages/side-code-export/dist/bin.js'186: WARN Failed to create bin at /home/runner/work/selenium-ide/selenium-ide/packages/code-export-javascript-mocha/node_modules/.bin/side-code-export. ENOENT: no such file or directory, open '/home/runner/work/selenium-ide/selenium-ide/packages/side-code-export/dist/bin.js'187: WARN Failed to create bin at /home/runner/work/selenium-ide/selenium-ide/packages/code-export-python-pytest/node_modules/.bin/side-code-export. ENOENT: no such file or directory, open '/home/runner/work/selenium-ide/selenium-ide/packages/side-code-export/dist/bin.js'188: WARN Failed to create bin at /home/runner/work/selenium-ide/selenium-ide/packages/code-export-ruby-rspec/node_modules/.bin/side-code-export. ENOENT: no such file or directory, open '/home/runner/work/selenium-ide/selenium-ide/packages/side-code-export/dist/bin.js'189: WARN Failed to create bin at /home/runner/work/selenium-ide/selenium-ide/packages/code-export-csharp-xunit/node_modules/.bin/side-code-export. ENOENT: no such file or directory, open '/home/runner/work/selenium-ide/selenium-ide/packages/side-code-export/dist/bin.js'190: WARN Failed to create bin at /home/runner/work/selenium-ide/selenium-ide/packages/side-example-suite/node_modules/.bin/side-code-export. ENOENT: no such file or directory, open '/home/runner/work/selenium-ide/selenium-ide/packages/side-code-export/dist/bin.js'191: WARN Failed to create bin at /home/runner/work/selenium-ide/selenium-ide/packages/selenium-ide/node_modules/.bin/side-code-export. ENOENT: no such file or directory, open '/home/runner/work/selenium-ide/selenium-ide/packages/side-code-export/dist/bin.js'192: WARN Failed to create bin at /home/runner/work/selenium-ide/selenium-ide/packages/code-export-csharp-commons/node_modules/.bin/side-code-export. ENOENT: no such file or directory, open '/home/runner/work/selenium-ide/selenium-ide/packages/code-export-csharp-commons/node_modules/side-code-export/dist/bin.js'193: WARN Failed to create bin at /home/runner/work/selenium-ide/selenium-ide/packages/code-export-javascript-mocha/node_modules/.bin/side-code-export. ENOENT: no such file or directory, open '/home/runner/work/selenium-ide/selenium-ide/packages/code-export-javascript-mocha/node_modules/side-code-export/dist/bin.js'194: WARN Failed to create bin at /home/runner/work/selenium-ide/selenium-ide/packages/code-export-java-junit/node_modules/.bin/side-code-export. ENOENT: no such file or directory, open '/home/runner/work/selenium-ide/selenium-ide/packages/code-export-java-junit/node_modules/side-code-export/dist/bin.js'195: WARN Failed to create bin at /home/runner/work/selenium-ide/selenium-ide/packages/code-export-ruby-rspec/node_modules/.bin/side-code-export. ENOENT: no such file or directory, open '/home/runner/work/selenium-ide/selenium-ide/packages/code-export-ruby-rspec/node_modules/side-code-export/dist/bin.js'196: WARN Failed to create bin at /home/runner/work/selenium-ide/selenium-ide/packages/code-export-python-pytest/node_modules/.bin/side-code-export. ENOENT: no such file or directory, open '/home/runner/work/selenium-ide/selenium-ide/packages/code-export-python-pytest/node_modules/side-code-export/dist/bin.js'197: WARN Failed to create bin at /home/runner/work/selenium-ide/selenium-ide/packages/code-export-csharp-nunit/node_modules/.bin/side-code-export. ENOENT: no such file or directory, open '/home/runner/work/selenium-ide/selenium-ide/packages/code-export-csharp-nunit/node_modules/side-code-export/dist/bin.js'198: WARN Failed to create bin at /home/runner/work/selenium-ide/selenium-ide/packages/code-export-csharp-xunit/node_modules/.bin/side-code-export. ENOENT: no such file or directory, open '/home/runner/work/selenium-ide/selenium-ide/packages/code-export-csharp-xunit/node_modules/side-code-export/dist/bin.js'199: WARN Failed to create bin at /home/runner/work/selenium-ide/selenium-ide/packages/side-example-suite/node_modules/.bin/side-code-export. ENOENT: no such file or directory, open '/home/runner/work/selenium-ide/selenium-ide/packages/side-example-suite/node_modules/side-code-export/dist/bin.js'200: WARN Failed to create bin at /home/runner/work/selenium-ide/selenium-ide/packages/selenium-ide/node_modules/.bin/side-code-export. ENOENT: no such file or directory, open '/home/runner/work/selenium-ide/selenium-ide/packages/selenium-ide/node_modules/side-code-export/dist/bin.js'
...
295: packages/selenium-ide build:webpack: @ ./src/browser/windows/Splash/renderer.tsx 39:31-59296: packages/selenium-ide build:webpack: �[1m�[33mWARNING�[39m�[22m in �[1m../side-model/dist/I18N/index.js�[39m�[22m �[1m�[32m36:82-92�[39m�[22m297: packages/selenium-ide build:webpack: �[1mCritical dependency: the request of a dependency is an expression�[39m�[22m298: packages/selenium-ide build:webpack: @ ../side-model/dist/index.js 38:13-30299: packages/selenium-ide build:webpack: @ ./src/browser/I18N/en/index.ts 4:21-54300: packages/selenium-ide build:webpack: @ ./src/browser/I18N/keys.ts 6:29-44301: packages/selenium-ide build:webpack: @ ./src/browser/windows/Splash/renderer.tsx 39:31-59302: packages/selenium-ide build:webpack: 2 warnings have detailed information that is not shown.303: packages/selenium-ide build:webpack: Use 'stats.errorDetails: true' resp. '--stats-error-details' to show it.
...
335: packages/selenium-ide build:webpack: �[1mCritical dependency: the request of a dependency is an expression�[39m�[22m336: packages/selenium-ide build:webpack: @ ../side-model/dist/index.js 38:13-30337: packages/selenium-ide build:webpack: @ ../side-api/dist/models/state/index.js 18:21-54338: packages/selenium-ide build:webpack: @ ../side-api/dist/models/index.js 18:13-31339: packages/selenium-ide build:webpack: @ ../side-api/dist/index.js 49:13-32340: packages/selenium-ide build:webpack: @ ./src/browser/api/index.ts 7:19-50 19:17-48341: packages/selenium-ide build:webpack: @ ./src/browser/windows/PlaybackWindow/preload.ts 6:30-52342: packages/selenium-ide build:webpack: 2 warnings have detailed information that is not shown.343: packages/selenium-ide build:webpack: Use 'stats.errorDetails: true' resp. '--stats-error-details' to show it.
...
370: packages/selenium-ide build:webpack: �[1mCritical dependency: the request of a dependency is an expression�[39m�[22m371: packages/selenium-ide build:webpack: @ ../side-model/dist/index.js 38:13-30372: packages/selenium-ide build:webpack: @ ../side-api/dist/models/state/index.js 18:21-54373: packages/selenium-ide build:webpack: @ ../side-api/dist/models/index.js 18:13-31374: packages/selenium-ide build:webpack: @ ../side-api/dist/index.js 49:13-32375: packages/selenium-ide build:webpack: @ ./src/browser/api/bidi.ts 7:19-50 19:17-48376: packages/selenium-ide build:webpack: @ ./src/browser/windows/PlaybackWindowBidi/preload.ts 6:31-58377: packages/selenium-ide build:webpack: 2 warnings have detailed information that is not shown.378: packages/selenium-ide build:webpack: Use 'stats.errorDetails: true' resp. '--stats-error-details' to show it.
...
440: packages/selenium-ide build:webpack: �[1m�[33mWARNING�[39m�[22m in �[1m./src/main/session/controllers/System/index.ts�[39m�[22m �[1m�[32m77:114-124�[39m�[22m441: packages/selenium-ide build:webpack: �[1mCritical dependency: the request of a dependency is an expression�[39m�[22m442: packages/selenium-ide build:webpack: @ ./src/main/session/index.ts 20:33-64443: packages/selenium-ide build:webpack: @ ./src/main/index.ts 11:34-54444: packages/selenium-ide build:webpack: �[1m�[33mWARNING�[39m�[22m in �[1m../../node_modules/.pnpm/v8-compile-cache@2.3.0/node_modules/v8-compile-cache/v8-compile-cache.js�[39m�[22m �[1m�[32m153:42-49�[39m�[22m445: packages/selenium-ide build:webpack: �[1mCritical dependency: require function is used in a way in which dependencies cannot be statically extracted�[39m�[22m446: packages/selenium-ide build:webpack: @ ./src/main/index.ts 6:0-27447: packages/selenium-ide build:webpack: 6 warnings have detailed information that is not shown.448: packages/selenium-ide build:webpack: Use 'stats.errorDetails: true' resp. '--stats-error-details' to show it.
...
597: updating chromedriver...598: Downloading driver from https://storage.googleapis.com/chrome-for-testing-public/124.0.6367.60/linux64/chromedriver-linux64.zip to /home/runner/work/selenium-ide/selenium-ide/drivers/chromedriver599: Downloaded driver from https://storage.googleapis.com/chrome-for-testing-public/124.0.6367.60/linux64/chromedriver-linux64.zip to /home/runner/work/selenium-ide/selenium-ide/drivers/chromedriver600: updating geckodriver...601: Downloading driver from https://github.com/mozilla/geckodriver/releases/download/v0.34.0/geckodriver-v0.34.0-linux64.tar.gz to /home/runner/work/selenium-ide/selenium-ide/drivers/geckodriver602: /home/runner/work/selenium-ide/selenium-ide/packages/get-driver/dist/download-driver.js:81603: response?.body?.pipe(tar_1.default.t({604: ^605: TypeError: Cannot read properties of undefined (reading 't')606: at /home/runner/work/selenium-ide/selenium-ide/packages/get-driver/dist/download-driver.js:81:44607: at new Promise (<anonymous>)608: at processDownloadResonse (/home/runner/work/selenium-ide/selenium-ide/packages/get-driver/dist/download-driver.js:52:64)609: at downloadDriver (/home/runner/work/selenium-ide/selenium-ide/packages/get-driver/dist/download-driver.js:94:11)610: at process.processTicksAndRejections (node:internal/process/task_queues:95:5)611: at async updateDrivers (/home/runner/work/selenium-ide/selenium-ide/packages/webdriver-testkit/dist/update-drivers.js:69:9)612: Node.js v20.12.2613: npm ERR! Lifecycle script `download-drivers` failed with error: 614: npm ERR! Error: command failed 615: npm ERR! in workspace: @seleniumhq/webdriver-testkit@4.0.2 616: npm ERR! at location: /home/runner/work/selenium-ide/selenium-ide/packages/webdriver-testkit 617: ##[error]Process completed with exit code 1.
✨ CI feedback usage guide:
The CI feedback tool (/checks) automatically triggers when a PR has a failed check.
The tool analyzes the failed checks and provides several feedbacks:
Failed stage
Failed test name
Failure summary
Relevant error logs
In addition to being automatically triggered, the tool can also be invoked manually by commenting on a PR:
where {repo_name} is the name of the repository, {run_number} is the run number of the failed check, and {job_number} is the job number of the failed check.
Configuration options
enable_auto_checks_feedback - if set to true, the tool will automatically provide feedback when a check is failed. Default is true.
excluded_checks_list - a list of checks to exclude from the feedback, for example: ["check1", "check2"]. Default is an empty list.
enable_help_text - if set to true, the tool will provide a help message with the feedback. Default is true.
persistent_comment - if set to true, the tool will overwrite a previous checks comment with the new feedback. Default is true.
final_update_message - if persistent_comment is true and updating a previous checks message, the tool will also create a new message: "Persistent checks updated to latest commit". Default is true.
See more information about the checks tool in the docs.
3, because the PR includes multiple changes across various package versions and a significant refactor in the main session controller logic. The changes are spread across multiple files and packages, which requires a thorough review to ensure compatibility and functionality.
🧪 Relevant tests
No
⚡ Possible issues
Possible Bug: The refactored logic in SystemController for handling startup errors and driver processes could introduce bugs if not properly tested, especially since it involves conditional logic based on the browser type.
Performance Concern: Multiple asynchronous operations and error handling in the SystemController could lead to unhandled promise rejections or memory leaks if not managed correctly.
Consider using a more descriptive variable name than browser for the object holding browser information. This will improve code readability and maintainability.
Refactor repeated code into a function to enhance maintainability.
Refactor the repeated code for starting the process and setting the browser information into a separate function to enhance code reuse and maintainability.
Update the dependency version to maintain consistency across related packages.
Update the version of @seleniumhq/code-export-csharp-commons in @seleniumhq/code-export-csharp-nunit to match the latest version (4.0.4) to maintain consistency across packages that depend on each other.
Improve log message formatting to avoid unintended whitespace.
Avoid using multiline strings with backticks for logging, as it can lead to unintended whitespace in logs. Use single-line strings or concatenate strings instead.
-console.warn(`- Failed to locate non-electron driver on startup,- Resetting to electron driver.-`)+console.warn("Failed to locate non-electron driver on startup, Resetting to electron driver.")
Use string concatenation for error messages to improve readability.
Use template literals or string concatenation to include variable values in strings instead of using backticks for multi-line strings, which can be error-prone and less readable.
-await this.crash(- `Unable to startup due to chromedriver error: ${startupError}`-)+await this.crash("Unable to startup due to chromedriver error: " + startupError)
Lock dependency versions to specific numbers to ensure consistent behavior.
Consider locking the version of the new dependencies to a specific version rather than using the caret (^) version range. This can help ensure consistent behavior across different environments and deployments by avoiding unexpected updates.
Verify compatibility of major version increments to prevent breaking changes.
Verify that the major version increment in @seleniumhq/side-model does not introduce breaking changes that could affect other packages depending on it, especially when used in production environments.
-"version": "4.0.2",+"version": "4.0.2", # Ensure compatibility with other packages
Bug prevention
Update dependency versions to match those in related packages to avoid conflicts.
Ensure that the dependency versions used in @seleniumhq/code-export-csharp-nunit are up-to-date with the versions specified in @seleniumhq/code-export-csharp-commons to avoid version conflicts and potential bugs.
Update to the latest dependency versions for compatibility and feature access.
Update the version of @seleniumhq/side-model and @seleniumhq/side-runtime in packages/side-runner/package.json to the latest versions to ensure compatibility with the latest features and bug fixes.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
User description
Thanks for contributing to the Selenium IDE!
A PR well described will help maintainers to quickly review and merge it
Before submitting your PR, please check our contributing guidelines.
Avoid large PRs, help reviewers by making them as simple and short as possible.
Description
Motivation and Context
Types of changes
Checklist
PR Type
enhancement, bug_fix
Description
SystemController.Changes walkthrough 📝
1 files
index.ts
Enhance chromedriver startup and error handlingpackages/selenium-ide/src/main/session/controllers/System/index.ts
on startup.
18 files
package.json
Update package version and dependenciespackages/code-export-csharp-commons/package.json
side-code-exportto version 4.0.5.package.json
Update package version and dependenciespackages/code-export-csharp-nunit/package.json
side-code-exportto version 4.0.5.package.json
Update package version and dependenciespackages/code-export-csharp-xunit/package.json
side-code-exportto version 4.0.5.package.json
Update package version and dependenciespackages/code-export-java-junit/package.json
side-code-exportto version 4.0.5.package.json
Update package version and dependenciespackages/code-export-javascript-mocha/package.json
side-code-exportto version 4.0.5.package.json
Update package version and dependenciespackages/code-export-python-pytest/package.json
side-code-exportto version 4.0.5.package.json
Update package version and dependenciespackages/code-export-ruby-rspec/package.json
side-code-exportto version 4.0.5.package.json
Update package version and dependenciespackages/get-driver/package.json
tarto version 7.1.0.package.json
Update package version and dependenciespackages/selenium-ide/package.json
package.json
Update package version and dependenciespackages/side-api/package.json
@seleniumhq/side-modelto version4.0.2.
package.json
Update package version and dependenciespackages/side-code-export/package.json
@seleniumhq/side-modelto version4.0.2.
package.json
Update package version and dependenciespackages/side-example-suite/package.json
side-code-exportto version 4.0.5.package.json
Update package versionpackages/side-model/package.json
package.json
Update package version and dependenciespackages/side-runner/package.json
@seleniumhq/side-modelto version4.0.2.
package.json
Update package version and dependenciespackages/side-runtime/package.json
selenium-webdriverto version 4.20.0.tsconfig.json
Simplify TypeScript configurationpackages/side-runtime/tsconfig.json
side-testkitandwebdriver-testkit.package.json
Update package version and dependenciespackages/webdriver-testkit/package.json
selenium-webdriverto version 4.20.0.pnpm-lock.yaml
Comprehensive dependency updates in lock filepnpm-lock.yaml
packages.