Skip to content

Conversation

joerg1985
Copy link
Member

@joerg1985 joerg1985 commented Aug 16, 2025

User description

🔗 Related Issues

💥 What does this PR do?

Update to netty 4.2.4, add the dependencies needed for redis tests to pass with the new netty version.

🔧 Implementation Notes

I did follow most of the migration guide at https://netty.io/wiki/netty-4.2-migration-guide.html, but:

  • switchted not to the old memory allocator for testing, as we should have not a high throughput
  • stick to the SelfSignedCertificate for now, as it is unclear how to use the new CertificateBuilder correct

💡 Additional Considerations

🔄 Types of changes

  • Cleanup (formatting, renaming)
  • Bug fix (backwards compatible)
  • New feature (non-breaking change which adds functionality and tests!)
  • Breaking change (fix or feature that would cause existing functionality to change)

PR Type

Enhancement


Description

  • Update Netty from 4.1.121.Final to 4.2.4.Final

  • Migrate to new MultiThreadIoEventLoopGroup API

  • Add required dependencies for Redis tests compatibility

  • Update Maven dependencies and build configurations


Diagram Walkthrough

flowchart LR
  A["Netty 4.1.121"] --> B["Netty 4.2.4"]
  B --> C["New Event Loop API"]
  B --> D["Additional Dependencies"]
  C --> E["MultiThreadIoEventLoopGroup"]
  D --> F["Protobuf & Marshalling"]
Loading

File Walkthrough

Relevant files
Enhancement
NettyServer.java
Migrate to Netty 4.2 event loop API                                           

java/src/org/openqa/selenium/netty/server/NettyServer.java

  • Replace NioEventLoopGroup with MultiThreadIoEventLoopGroup
  • Add NioIoHandler.newFactory() for event loop initialization
  • Update imports for new Netty 4.2 API
+4/-3     
Dependencies
MODULE.bazel
Update Netty BOM and add dependencies                                       

MODULE.bazel

  • Update netty-bom from 4.1.121.Final to 4.2.4.Final
  • Add protobuf-java and protobuf-javanano dependencies
  • Add jboss-marshalling dependency for Redis tests
+4/-1     
maven_install.json
Maven dependency resolution updates                                           

java/maven_install.json

  • Update artifact hashes for new Netty 4.2.4 versions
  • Add new Netty codec modules (base, compression, marshalling, protobuf)
  • Update dependency tree with new module structure
  • Add protobuf and marshalling library entries
+167/-56
BUILD.bazel
Add Redis module dependencies                                                       

java/src/org/openqa/selenium/redis/BUILD.bazel

  • Add protobuf-java and protobuf-javanano artifacts
  • Add jboss-marshalling artifact dependency
  • Update build dependencies for Redis module
+3/-0     

@selenium-ci selenium-ci added C-java Java Bindings B-build Includes scripting, bazel and CI integrations C-rust Rust code is mostly Selenium Manager B-manager Selenium Manager labels Aug 16, 2025
Copy link
Contributor

PR Reviewer Guide 🔍

Here are some key observations to aid the review process:

🎫 Ticket compliance analysis 🔶

1234 - Partially compliant

Compliant requirements:

Non-compliant requirements:

  • Investigate and address regression for click() JS href not triggering in 2.48.x
  • Provide a fix or workaround restoring JS execution on click
  • Validate behavior on Firefox 42

Requires further human verification:

5678 - Partially compliant

Compliant requirements:

Non-compliant requirements:

  • Diagnose and resolve ConnectFailure for multiple ChromeDriver instances
  • Ensure stable multiple session creation without errors
  • Provide guidance or code/config changes

Requires further human verification:

⏱️ Estimated effort to review: 3 🔵🔵🔵⚪⚪
🧪 No relevant tests
🔒 Security concerns

Dependency changes:
Adding netty-pkitesting and updating Netty introduce transitive crypto (BouncyCastle) changes. Ensure versions are pinned (conflict resolution shows bcprov-jdk18on to 1.81) and that pkitesting is not exposing test certificates or insecure defaults in production builds. No direct injection/XSS/secret exposure evident.

⚡ Recommended focus areas for review

Possible Issue

Switching to CertificateBuilder.buildSelfSigned() and using X509Bundle.toKeyManagerFactory() changes certificate/key material loading semantics. Ensure compatibility with the existing ServerOptions (e.g., cipher suites, protocols) and that client connections still succeed across JDKs and OSes.

try {
  X509Bundle cert = new CertificateBuilder().buildSelfSigned();
  sslCtx = SslContextBuilder.forServer(cert.toKeyManagerFactory()).build();
} catch (Exception e) {
  throw new UncheckedIOException(new IOException("Self-signed certificate problem.", e));
}
Behavior Change

Replacing NioEventLoopGroup with MultiThreadIoEventLoopGroup(NioIoHandler.newFactory()) may alter threading and performance characteristics. Validate shutdown hooks, thread naming, and compatibility with NioServerSocketChannel.

bossGroup = new MultiThreadIoEventLoopGroup(1, NioIoHandler.newFactory());
workerGroup = new MultiThreadIoEventLoopGroup(NioIoHandler.newFactory());
Dependency Risk

Adding io.netty:netty-pkitesting introduces a test/PKI helper at runtime scope. Confirm it is intended for production artifact and does not bloat runtime or pull unnecessary BouncyCastle versions.

"io.grpc:grpc-context:1.74.0",
"io.lettuce:lettuce-core:6.8.0.RELEASE",
"io.netty:netty-buffer",
"io.netty:netty-codec-http",
"io.netty:netty-codec-http2",
"io.netty:netty-common",
"io.netty:netty-handler",
"io.netty:netty-handler-proxy",
"io.netty:netty-pkitesting",
"io.netty:netty-transport",
"io.opentelemetry:opentelemetry-api",

Copy link
Contributor

qodo-merge-pro bot commented Aug 16, 2025

PR Code Suggestions ✨

Explore these optional code suggestions:

CategorySuggestion                                                                                                                                    Impact
Possible issue
Include hostname in self-signed cert

Preserve hostname information in the self-signed certificate to avoid TLS
validation issues for clients that perform hostname verification. Pass the
configured hostname (or fallback) as a subject alternative name when building
the certificate.

java/src/org/openqa/selenium/netty/server/NettyServer.java [90-99]

 } else if (options.isSelfSigned()) {
   try {
-    X509Bundle cert = new CertificateBuilder().buildSelfSigned();
+    String commonName = options.getHostname().orElse("localhost");
+    X509Bundle cert = new CertificateBuilder()
+        .addSubjectAlternativeName(commonName)
+        .buildSelfSigned();
     sslCtx = SslContextBuilder.forServer(cert.toKeyManagerFactory()).build();
   } catch (Exception e) {
     throw new UncheckedIOException(new IOException("Self-signed certificate problem.", e));
   }
 } else {
   sslCtx = null;
 }
  • Apply / Chat
Suggestion importance[1-10]: 8

__

Why: The suggestion correctly identifies that not including the hostname in the self-signed certificate can lead to TLS validation failures, and proposes a valid fix using the available options object.

Medium
  • Update

@joerg1985 joerg1985 force-pushed the netty-4.2 branch 2 times, most recently from 4e54a5c to ed9cd12 Compare August 16, 2025 20:39
@joerg1985 joerg1985 added B-grid Everything grid and server related and removed C-rust Rust code is mostly Selenium Manager B-manager Selenium Manager Possible security concern C-java Java Bindings B-build Includes scripting, bazel and CI integrations labels Aug 16, 2025
@joerg1985 joerg1985 marked this pull request as draft August 16, 2025 21:33
@diemol diemol requested a review from shs96c August 17, 2025 09:31
@joerg1985 joerg1985 marked this pull request as ready for review August 17, 2025 12:07
Copy link
Contributor

PR Reviewer Guide 🔍

Here are some key observations to aid the review process:

🎫 Ticket compliance analysis 🔶

5678 - Partially compliant

Compliant requirements:

  • None

Non-compliant requirements:

  • Diagnose and resolve ConnectFailure during multiple ChromeDriver instantiations
  • Ensure subsequent instantiations do not produce errors

Requires further human verification:

  • Verify at runtime that the Netty upgrade and event loop changes do not introduce regressions in Grid/Redis components under multi-session load.

1234 - Partially compliant

Compliant requirements:

  • None

Non-compliant requirements:

  • Trigger JS in href on click in Firefox

Requires further human verification:

  • Browser behavior validation in Firefox—unrelated to this Netty/Grid upgrade PR.
⏱️ Estimated effort to review: 3 🔵🔵🔵⚪⚪
🧪 No relevant tests
🔒 No security concerns identified
⚡ Recommended focus areas for review

API Migration Risk

Switching to MultiThreadIoEventLoopGroup with NioIoHandler.newFactory() may change threading and channel behavior; validate server bootstrap compatibility and graceful shutdown, and ensure no resource leaks.

bossGroup = new MultiThreadIoEventLoopGroup(1, NioIoHandler.newFactory());
workerGroup = new MultiThreadIoEventLoopGroup(NioIoHandler.newFactory());
Dependency Surface Growth

Added protobuf and marshalling artifacts; confirm they are strictly required and do not inflate runtime classpath for modules that don't need them.

    "com.google.protobuf:protobuf-java:3.25.5",
    "com.google.protobuf.nano:protobuf-javanano:3.1.0",
    "com.graphql-java:graphql-java:24.1",
    "dev.failsafe:failsafe:3.3.2",
    "io.grpc:grpc-context:1.74.0",
    "io.lettuce:lettuce-core:6.8.0.RELEASE",
    "io.netty:netty-buffer",
    "io.netty:netty-codec-http",
    "io.netty:netty-codec-http2",
    "io.netty:netty-common",
    "io.netty:netty-handler",
    "io.netty:netty-handler-proxy",
    "io.netty:netty-transport",
    "io.opentelemetry:opentelemetry-api",
    "io.opentelemetry:opentelemetry-context",
    "io.opentelemetry:opentelemetry-exporter-logging",
    "io.opentelemetry:opentelemetry-sdk",
    "io.opentelemetry:opentelemetry-sdk-common",
    "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure",
    "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi",
    "io.opentelemetry:opentelemetry-sdk-testing",
    "io.opentelemetry:opentelemetry-sdk-trace",
    "it.ozimov:embedded-redis:0.7.3",
    "net.bytebuddy:byte-buddy:1.17.6",
    "org.htmlunit:htmlunit-core-js:4.14.0",
    "org.apache.commons:commons-exec:1.5.0",
    "org.apache.logging.log4j:log4j-core:2.25.1",
    "org.assertj:assertj-core:3.27.4",
    "org.bouncycastle:bcpkix-jdk18on:1.81",
    "org.eclipse.mylyn.github:org.eclipse.egit.github.core:2.1.5",
    "org.hsqldb:hsqldb:2.7.4",
    "org.jboss.marshalling:jboss-marshalling:2.2.3.Final",
    "org.jspecify:jspecify:1.0.0",
    "org.junit.jupiter:junit-jupiter-api",
    "org.junit.jupiter:junit-jupiter-engine",
    "org.junit.jupiter:junit-jupiter-params",
    "org.junit.platform:junit-platform-launcher",
    "org.junit.platform:junit-platform-reporting",
    "org.junit.platform:junit-platform-commons",
    "org.junit.platform:junit-platform-engine",
    "org.mockito:mockito-core:5.18.0",
    "org.redisson:redisson:3.50.0",
    "org.slf4j:slf4j-api:2.0.17",
    "org.slf4j:slf4j-jdk14:2.0.17",
    "org.tomlj:tomlj:1.1.1",
    "org.zeromq:jeromq:0.6.0",
    "uk.org.webcompere:system-stubs-jupiter:2.1.8",
    "uk.org.webcompere:system-stubs-core:2.1.8",
],
boms = [
    "io.opentelemetry:opentelemetry-bom:1.53.0",
    "io.netty:netty-bom:4.2.4.Final",
    "org.junit:junit-bom:5.13.4",
Generated Lockfile Consistency

New Netty modules and hashes were added; ensure all referenced modules exist in repositories and align with the selected netty-bom to avoid resolution conflicts.

"io.lettuce:lettuce-core": {
  "shasums": {
    "jar": "165134b6ce55caa822440fb23e7dc910a13fedada6ea1f4587145fe0c7f0a657",
    "sources": "1540cc4fd90f10d2221ff0f42bf01f08dcc0967742a1d62744a719e79e6a0984"
  },
  "version": "6.8.0.RELEASE"
},
"io.netty:netty-buffer": {
  "shasums": {
    "jar": "9e0dd42f1eabc58433962efa329acd372df305c30a6a58cd17feb1cd32f9e289",
    "sources": "46ccc0b286ac575b42ebfc6ccc58c02888996cfb090049484a78bd96375b0ea5"
  },
  "version": "4.2.4.Final"
},
"io.netty:netty-codec": {
  "shasums": {
    "jar": "86da6271c6d2ef06cf5e42a03bbc67a5f074f9778464f512f1c84c33fbfc89a9",
    "sources": "56f1adb200d60a4ee01785f00e271c37766d1c955536f54fa08ea475424d948e"
  },
  "version": "4.2.4.Final"
},
"io.netty:netty-codec-base": {
  "shasums": {
    "jar": "0af2c137a8a3b264baf15887470d856a89bf712025a08652c3038bfffbfe6634",
    "sources": "01a4cfd4793e50153cc4826458120590f6f7321d72b6fe2231eb894140e2422d"
  },
  "version": "4.2.4.Final"
},
"io.netty:netty-codec-compression": {
  "shasums": {
    "jar": "63971c806632b08389c6d0b3c9d853dfef047618cd4cf555f23a992e155ce09c",
    "sources": "adba308c520c2b7c76b84d551add8b606355ac051ba4f2c631b2c5f07d917100"
  },
  "version": "4.2.4.Final"
},
"io.netty:netty-codec-dns": {
  "shasums": {
    "jar": "d5af43be74356efe87520478e6ab55132c9c023e96c99e1a438f3e5860cd5c9e",
    "sources": "0ac96df3a2d79b619e862e26525491b9364c201bbce9d82a82da1569fd63d69f"
  },
  "version": "4.2.4.Final"
},
"io.netty:netty-codec-http": {
  "shasums": {
    "jar": "bde689ddf294f70f105d0955cfc6d784d1e5ee4ea7730a733b1fc4728456d950",
    "sources": "bbba2b1424ab83003c0252bd3433d514d93a709390873e140f0fdb41f9cf1bda"
  },
  "version": "4.2.4.Final"
},
"io.netty:netty-codec-http2": {
  "shasums": {
    "jar": "89dc4fedb5c466d7ccdcc1193e4bb247a69b09042e7e4df994f3c4350d3102ee",
    "sources": "05db5f67340ece2fe86cffba2bd6555e212acc5e0572853b83dd95bff69587f8"
  },
  "version": "4.2.4.Final"
},
"io.netty:netty-codec-marshalling": {
  "shasums": {
    "jar": "2a3a8b1e631284fd2b538c11c9bd346c93ff16dc1c70bbab558dc8f24f1a4044",
    "sources": "ee6fec7b009c0fccdeacc33febe45973e9ccfa1ec342369c2f01bbfcb994ec5c"
  },
  "version": "4.2.4.Final"
},
"io.netty:netty-codec-protobuf": {
  "shasums": {
    "jar": "2318f521017dee8e0e4e50fd8d5e8a1b1d4762dcb69ea9aa52a7b79ff8c760bf",
    "sources": "61b817cbbf3dca1287fcc8b7525521561fefcdc94fa407f46b4ed4efcb9f9e98"
  },
  "version": "4.2.4.Final"
},
"io.netty:netty-codec-socks": {
  "shasums": {
    "jar": "d878e818f39b0d40bbfa942c7aaecea8cd62f14d3474e7b1e69a86dbea9d13cd",
    "sources": "1c2ff437576f46a6d6f14c2f066518994be2bcd8fe3295828cf06c4467f1eb0e"
  },
  "version": "4.2.4.Final"
},
"io.netty:netty-common": {
  "shasums": {
    "jar": "dd57448463662154c32e0cfa099960a16eda5f0896050e44195b0fc29863837f",
    "sources": "179d3073b473a446089083e5455904719f4ee145921c69023a883498b9d010bd"
  },
  "version": "4.2.4.Final"
},
"io.netty:netty-handler": {
  "shasums": {
    "jar": "5280b7ec84d494051ba99639c86793b04d924ea7ebdadac1528e66f4fe8392c8",
    "sources": "7ba3d1009cbf9aab7af8d773c1805d14d19b70cabebcae204aad2e44126813b3"
  },
  "version": "4.2.4.Final"
},
"io.netty:netty-handler-proxy": {
  "shasums": {
    "jar": "14643a410912aae6314df96f80528ce4f89dfda1d2c7538bb3ee3f88de55a24f",
    "sources": "f5531ddfaddfa86271e938565a5508dd493e00bede7da1ab38c748d030a0aa30"
  },
  "version": "4.2.4.Final"
},
"io.netty:netty-resolver": {
  "shasums": {
    "jar": "152b6531c0f9092b6a5c40c9ab709cfac275e433b4c080501740790d39863a0c",
    "sources": "b9bda1f6739d96e856cfde6725824d9ac185c586d713dcf0fbf0c78e1fbce6cb"
  },
  "version": "4.2.4.Final"
},
"io.netty:netty-resolver-dns": {
  "shasums": {
    "jar": "234325c9efa5f2583fc291d47d12168222abf9cadae7b54a560583ac3db08be1",
    "sources": "12b16163864ae8f55cac110a48faf94bdb81fa9a0cc6df26752815651e828a47"
  },
  "version": "4.2.4.Final"
},
"io.netty:netty-transport": {
  "shasums": {
    "jar": "c7873858bcf25d59211f99d3dd35a52d644efc5116cd0a00cd4402b3d23c6372",
    "sources": "01ccb80cb2c357aa6ee707074a7a1b75658cfe4fb5a6836587e3e1b6a1b3099d"
  },
  "version": "4.2.4.Final"
},
"io.netty:netty-transport-native-unix-common": {
  "shasums": {
    "jar": "d2e4f5a147af8546f5250f1fa7d1bc08b0f28e15f0f3195c7f24ebb1862a43c1",
    "sources": "fb93ce5111649f8c9fded892448bb20f977f841fc10c52ad70a2fa1b09586f2e"
  },
  "version": "4.2.4.Final"
},

Copy link
Contributor

PR Code Suggestions ✨

Explore these optional code suggestions:

CategorySuggestion                                                                                                                                    Impact
High-level
Validate Netty 4.2 API usage

Migrating to MultiThreadIoEventLoopGroup with NioIoHandler.newFactory() changes
threading and transport semantics; ensure all channel classes (e.g.,
NioServerSocketChannel) and pipeline handlers are compatible and that native
transports or alternatives are not required in some environments. Also, adding
protobuf/marshalling dependencies broadens the attack surface; confirm they are
strictly scoped to tests or Redis modules and that shading or version alignment
avoids conflicts with existing protobuf users in the repo.

Examples:

java/src/org/openqa/selenium/netty/server/NettyServer.java [103-104]
bossGroup = new MultiThreadIoEventLoopGroup(1, NioIoHandler.newFactory());
workerGroup = new MultiThreadIoEventLoopGroup(NioIoHandler.newFactory());
java/src/org/openqa/selenium/redis/BUILD.bazel [11-18]
deps = [
    "//java/src/org/openqa/selenium/grid/data",
    artifact("com.google.protobuf:protobuf-java"),
    artifact("com.google.protobuf.nano:protobuf-javanano"),
    artifact("io.lettuce:lettuce-core"),
    artifact("org.jboss.marshalling:jboss-marshalling"),
    artifact("org.redisson:redisson"),
],

Solution Walkthrough:

Before:

// In NettyServer.java
// Using old Netty 4.1 API
bossGroup = new NioEventLoopGroup(1);
workerGroup = new NioEventLoopGroup();

// In build files
// Dependencies are managed for Netty 4.1

After:

// In NettyServer.java
// Using new Netty 4.2 API
bossGroup = new MultiThreadIoEventLoopGroup(1, NioIoHandler.newFactory());
workerGroup = new MultiThreadIoEventLoopGroup(NioIoHandler.newFactory());
// Consider if native transports (e.g., Epoll) are needed for some environments
// bossGroup = new MultiThreadIoEventLoopGroup(1, EpollIoHandler.newFactory());

// In build files
// Dependencies for Redis module are explicitly scoped
// and checked for version conflicts.
Suggestion importance[1-10]: 8

__

Why: The suggestion correctly identifies major changes in the PR, raising valid concerns about the Netty API migration in NettyServer.java and the scope and security implications of new dependencies in build files.

Medium
General
Verify BOM-module alignment

Netty 4.2 splits codec modules; ensure transitive alignment by importing the
matching BOM only if all new modules are resolvable. Verify that any modules
removed from 4.1 (e.g., consolidated codecs) are not pinned elsewhere to prevent
dependency resolution errors.

MODULE.bazel [240]

+"io.netty:netty-bom:4.2.4.Final",
 
-
  • Apply / Chat
Suggestion importance[1-10]: 7

__

Why: This is a good, high-level verification check for a dependency version upgrade, ensuring that the new BOM aligns with all module changes, which is a valid concern in this PR.

Medium
  • More

@VietND96
Copy link
Member

This would be great, since I also just saw the CVE notice for version < 4.1.123.Final and want to do the upgrade. However, you already did it.

@VietND96 VietND96 added this to the Selenium 4.36 milestone Aug 18, 2025
Copy link
Contributor

qodo-merge-pro bot commented Sep 5, 2025

CI Feedback 🧐

A test triggered by this PR failed. Here is an AI-generated analysis of the failure:

Action: Ruby / Local Tests (firefox, macos) / Local Tests (firefox, macos)

Failed stage: Run Bazel [❌]

Failed test name: Selenium::WebDriver::ActionBuilder#send_keys sends keys to element; Selenium::WebDriver::Window can maximize the current window

Failure summary:

The action failed because two Ruby integration test targets for Firefox consistently failed:
-
//rb/spec/integration/selenium/webdriver:action_builder-firefox failed due to
MoveTargetOutOfBoundsError during ActionBuilder#send_keys:
• Failing example: rspec
./rb/spec/integration/selenium/webdriver/action_builder_spec.rb:41 (“sends keys to element”)

Error details: move target coordinates slightly outside the viewport, e.g., Move target (102, 600)
is out of bounds of viewport dimensions (1024, 599) (also seen with heights 596–599)
• Stack
(example): ./rb/lib/selenium/webdriver/common/action_builder.rb:198:in 'perform' -> remote bridge
send_actions -> Marionette assertTargetInViewPort
• Another example intermittently failed or timed
out: rspec ./rb/spec/integration/selenium/webdriver/action_builder_spec.rb:28 (“sends keys to the
active element”) with Net::ReadTimeout when navigating to bodyTypingTest.html in attempt_1.
-
//rb/spec/integration/selenium/webdriver:window-firefox failed the “maximize window” assertion:

Failing example: rspec ./rb/spec/integration/selenium/webdriver/window_spec.rb:105
• Assertion at
window_spec.rb:113: expected new window height to increase above 700 after maximize, but it remained
684 (>700 expectation not met) across all three attempts.
As a result, Bazel reported “2 tests
FAILED” and the process exited with code 3.

Relevant error logs:
1:  ##[group]Runner Image Provisioner
2:  Hosted Compute Agent
...

696:  �[32m[1,305 / 1,307]�[0m 19 / 28 tests;�[0m Testing //rb/spec/integration/selenium/webdriver:action_builder-firefox; 182s local, disk-cache ... (2 actions running)
697:  �[32m[1,305 / 1,307]�[0m 19 / 28 tests;�[0m Testing //rb/spec/integration/selenium/webdriver:action_builder-firefox; 210s local, disk-cache ... (2 actions running)
698:  �[31m�[1mFAIL: �[0m//rb/spec/integration/selenium/webdriver:window-firefox (see /Users/runner/.bazel/execroot/_main/bazel-out/darwin_arm64-fastbuild/testlogs/rb/spec/integration/selenium/webdriver/window-firefox/test_attempts/attempt_1.log)
699:  �[32m[1,305 / 1,307]�[0m 19 / 28 tests;�[0m Testing //rb/spec/integration/selenium/webdriver:action_builder-firefox; 211s local, disk-cache ... (2 actions running)
700:  �[32m[1,305 / 1,307]�[0m 19 / 28 tests;�[0m Testing //rb/spec/integration/selenium/webdriver:action_builder-firefox; 240s local, disk-cache ... (2 actions running)
701:  �[32m[1,305 / 1,307]�[0m 19 / 28 tests;�[0m Testing //rb/spec/integration/selenium/webdriver:action_builder-firefox; 298s local, disk-cache ... (2 actions running)
702:  �[31m�[1mFAIL: �[0m//rb/spec/integration/selenium/webdriver:action_builder-firefox (see /Users/runner/.bazel/execroot/_main/bazel-out/darwin_arm64-fastbuild/testlogs/rb/spec/integration/selenium/webdriver/action_builder-firefox/test_attempts/attempt_2.log)
703:  �[32m[1,305 / 1,307]�[0m 19 / 28 tests;�[0m Testing //rb/spec/integration/selenium/webdriver:action_builder-firefox; 301s local, disk-cache ... (2 actions running)
704:  �[32m[1,305 / 1,307]�[0m 19 / 28 tests;�[0m Testing //rb/spec/integration/selenium/webdriver:action_builder-firefox; 305s local, disk-cache ... (2 actions running)
705:  �[32m[1,305 / 1,307]�[0m 19 / 28 tests;�[0m Testing //rb/spec/integration/selenium/webdriver:action_builder-firefox; 329s local, disk-cache ... (2 actions running)
706:  �[31m�[1mFAIL: �[0m//rb/spec/integration/selenium/webdriver:window-firefox (see /Users/runner/.bazel/execroot/_main/bazel-out/darwin_arm64-fastbuild/testlogs/rb/spec/integration/selenium/webdriver/window-firefox/test_attempts/attempt_2.log)
707:  �[32m[1,305 / 1,307]�[0m 19 / 28 tests;�[0m Testing //rb/spec/integration/selenium/webdriver:action_builder-firefox; 330s local, disk-cache ... (2 actions running)
708:  �[32m[1,305 / 1,307]�[0m 19 / 28 tests;�[0m Testing //rb/spec/integration/selenium/webdriver:action_builder-firefox; 371s local, disk-cache ... (2 actions running)
709:  �[32m[1,305 / 1,307]�[0m 19 / 28 tests;�[0m Testing //rb/spec/integration/selenium/webdriver:action_builder-firefox; 403s local, disk-cache ... (2 actions running)
710:  �[31m�[1mFAIL: �[0m//rb/spec/integration/selenium/webdriver:action_builder-firefox (see /Users/runner/.bazel/execroot/_main/bazel-out/darwin_arm64-fastbuild/testlogs/rb/spec/integration/selenium/webdriver/action_builder-firefox/test.log)
711:  �[31m�[1mFAILED: �[0m//rb/spec/integration/selenium/webdriver:action_builder-firefox (Summary)
712:  /Users/runner/.bazel/execroot/_main/bazel-out/darwin_arm64-fastbuild/testlogs/rb/spec/integration/selenium/webdriver/action_builder-firefox/test.log
713:  ==================== Test output for //rb/spec/integration/selenium/webdriver:action_builder-firefox:
714:  /Users/runner/.bazel/execroot/_main/bazel-out/darwin_arm64-fastbuild/testlogs/rb/spec/integration/selenium/webdriver/action_builder-firefox/test_attempts/attempt_1.log
715:  Running Ruby specs:
716:  /Users/runner/.bazel/execroot/_main/bazel-out/darwin_arm64-fastbuild/testlogs/rb/spec/integration/selenium/webdriver/action_builder-firefox/test_attempts/attempt_2.log
717:  �[32mINFO: �[0mFrom Testing //rb/spec/integration/selenium/webdriver:action_builder-firefox:
718:  browser: firefox
719:  driver: firefox
720:  version: stable
721:  platform: macosx
722:  ci: github
723:  rbe: false
724:  ruby: ruby 3.2.8 (2025-03-26 revision 13f495dc2c) [arm64-darwin24]
725:  Selenium::WebDriver::ActionBuilder
726:  #send_keys
727:  sends keys to the active element (FAILED - 1)
728:  sends keys to element (FAILED - 2)
729:  sends keys with multiple arguments
...

743:  #context_click
744:  right clicks an element
745:  executes with equivalent pointer methods
746:  #move_to
747:  moves to element
748:  moves to element with offset
749:  #drag_and_drop
750:  moves one element to another
751:  #drag_and_drop_by
752:  moves one element a provided distance
753:  #move_to_location
754:  moves pointer to specified coordinates
755:  pen stylus
756:  sets pointer event properties (PENDING: Test guarded; Guarded by {:browser=>:firefox, :reason=>"Unknown pointerType"};)
757:  #scroll_to
758:  scrolls to element (PENDING: Test guarded; Guarded by {:browser=>:firefox, :reason=>"incorrect MoveTargetOutOfBoundsError"};)
759:  #scroll_by
760:  scrolls by given amount (PENDING: Test skipped because it breaks test run; Guarded by {:driver=>:firefox, :reason=>"inconsistent behavior between versions"};)
761:  #scroll_from
762:  scrolls from element by given amount (PENDING: Test guarded; Guarded by {:browser=>[:firefox, :safari], :reason=>"incorrect MoveTargetOutOfBoundsError"};)
763:  scrolls from element by given amount with offset (PENDING: Test guarded; Guarded by {:browser=>[:firefox, :safari], :reason=>"incorrect MoveTargetOutOfBoundsError"};)
764:  raises MoveTargetOutOfBoundsError when origin offset from element is out of viewport
765:  scrolls by given amount with offset
766:  raises MoveTargetOutOfBoundsError when origin offset is out of viewport
767:  Pending: (Failures listed here are expected and do not affect your suite's status)
768:  1) Selenium::WebDriver::ActionBuilder pen stylus sets pointer event properties
769:  # Test guarded; Guarded by {:browser=>:firefox, :reason=>"Unknown pointerType"};
770:  Failure/Error: actions.perform
771:  Selenium::WebDriver::Error::UnknownError:
772:  Error: Unimplemented pointerMove for pointerType pen
773:  # ./rb/lib/selenium/webdriver/remote/response.rb:63:in `add_cause'
774:  # ./rb/lib/selenium/webdriver/remote/response.rb:41:in `error'
775:  # ./rb/lib/selenium/webdriver/remote/response.rb:52:in `assert_ok'
776:  # ./rb/lib/selenium/webdriver/remote/response.rb:34:in `initialize'
777:  # ./rb/lib/selenium/webdriver/remote/http/common.rb:103:in `new'
778:  # ./rb/lib/selenium/webdriver/remote/http/common.rb:103:in `create_response'
779:  # ./rb/lib/selenium/webdriver/remote/http/default.rb:103:in `request'
780:  # ./rb/lib/selenium/webdriver/remote/http/common.rb:68:in `call'
781:  # ./rb/lib/selenium/webdriver/remote/bridge.rb:625:in `execute'
782:  # ./rb/lib/selenium/webdriver/remote/bridge.rb:353:in `send_actions'
783:  # ./rb/lib/selenium/webdriver/common/action_builder.rb:198:in `perform'
784:  # ./rb/spec/integration/selenium/webdriver/action_builder_spec.rb:283:in `block (3 levels) in <module:WebDriver>'
785:  # ------------------
786:  # --- Caused by: ---
787:  # Selenium::WebDriver::Error::WebDriverError:
788:  #   pointerMove@chrome://remote/content/shared/webdriver/Actions.sys.mjs:2416:11
789:  performPointerMoveStep@chrome://remote/content/shared/webdriver/Actions.sys.mjs:1636:31
790:  dispatch/<@chrome://remote/content/shared/webdriver/Actions.sys.mjs:1603:20
791:  moveOverTime/transitions<@chrome://remote/content/shared/webdriver/Actions.sys.mjs:2343:9
792:  2) Selenium::WebDriver::ActionBuilder#scroll_to scrolls to element
793:  # Test guarded; Guarded by {:browser=>:firefox, :reason=>"incorrect MoveTargetOutOfBoundsError"};
794:  Failure/Error: driver.action.scroll_to(iframe).perform
795:  Selenium::WebDriver::Error::MoveTargetOutOfBoundsError:
796:  Move target (410, 2804) is out of bounds of viewport dimensions (1024, 601)
797:  # ./rb/lib/selenium/webdriver/remote/response.rb:63:in `add_cause'
798:  # ./rb/lib/selenium/webdriver/remote/response.rb:41:in `error'
799:  # ./rb/lib/selenium/webdriver/remote/response.rb:52:in `assert_ok'
800:  # ./rb/lib/selenium/webdriver/remote/response.rb:34:in `initialize'
801:  # ./rb/lib/selenium/webdriver/remote/http/common.rb:103:in `new'
802:  # ./rb/lib/selenium/webdriver/remote/http/common.rb:103:in `create_response'
803:  # ./rb/lib/selenium/webdriver/remote/http/default.rb:103:in `request'
804:  # ./rb/lib/selenium/webdriver/remote/http/common.rb:68:in `call'
805:  # ./rb/lib/selenium/webdriver/remote/bridge.rb:625:in `execute'
806:  # ./rb/lib/selenium/webdriver/remote/bridge.rb:353:in `send_actions'
807:  # ./rb/lib/selenium/webdriver/common/action_builder.rb:198:in `perform'
808:  # ./rb/spec/integration/selenium/webdriver/action_builder_spec.rb:316:in `block (3 levels) in <module:WebDriver>'
809:  # ------------------
810:  # --- Caused by: ---
811:  # Selenium::WebDriver::Error::WebDriverError:
812:  #   RemoteError@chrome://remote/content/shared/RemoteError.sys.mjs:8:8
813:  WebDriverError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:199:5
814:  MoveTargetOutOfBoundsError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:518:5
815:  assertTargetInViewPort@chrome://remote/content/shared/webdriver/Actions.sys.mjs:3122:11
816:  #assertInViewPort@chrome://remote/content/marionette/actors/MarionetteCommandsChild.sys.mjs:67:17
817:  receiveMessage@chrome://remote/content/marionette/actors/MarionetteCommandsChild.sys.mjs:187:42
818:  3) Selenium::WebDriver::ActionBuilder#scroll_by scrolls by given amount
819:  # Test skipped because it breaks test run; Guarded by {:driver=>:firefox, :reason=>"inconsistent behavior between versions"};
820:  # ./rb/spec/integration/selenium/webdriver/action_builder_spec.rb:323
821:  4) Selenium::WebDriver::ActionBuilder#scroll_from scrolls from element by given amount
822:  # Test guarded; Guarded by {:browser=>[:firefox, :safari], :reason=>"incorrect MoveTargetOutOfBoundsError"};
823:  Failure/Error: driver.action.scroll_from(scroll_origin, 0, 200).perform
824:  Selenium::WebDriver::Error::MoveTargetOutOfBoundsError:
825:  Move target (410, 2802) is out of bounds of viewport dimensions (1024, 596)
826:  # ./rb/lib/selenium/webdriver/remote/response.rb:63:in `add_cause'
827:  # ./rb/lib/selenium/webdriver/remote/response.rb:41:in `error'
828:  # ./rb/lib/selenium/webdriver/remote/response.rb:52:in `assert_ok'
829:  # ./rb/lib/selenium/webdriver/remote/response.rb:34:in `initialize'
830:  # ./rb/lib/selenium/webdriver/remote/http/common.rb:103:in `new'
831:  # ./rb/lib/selenium/webdriver/remote/http/common.rb:103:in `create_response'
832:  # ./rb/lib/selenium/webdriver/remote/http/default.rb:103:in `request'
833:  # ./rb/lib/selenium/webdriver/remote/http/common.rb:68:in `call'
834:  # ./rb/lib/selenium/webdriver/remote/bridge.rb:625:in `execute'
835:  # ./rb/lib/selenium/webdriver/remote/bridge.rb:353:in `send_actions'
836:  # ./rb/lib/selenium/webdriver/common/action_builder.rb:198:in `perform'
837:  # ./rb/spec/integration/selenium/webdriver/action_builder_spec.rb:343:in `block (3 levels) in <module:WebDriver>'
838:  # ------------------
839:  # --- Caused by: ---
840:  # Selenium::WebDriver::Error::WebDriverError:
841:  #   RemoteError@chrome://remote/content/shared/RemoteError.sys.mjs:8:8
842:  WebDriverError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:199:5
843:  MoveTargetOutOfBoundsError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:518:5
844:  assertTargetInViewPort@chrome://remote/content/shared/webdriver/Actions.sys.mjs:3122:11
845:  #assertInViewPort@chrome://remote/content/marionette/actors/MarionetteCommandsChild.sys.mjs:67:17
846:  receiveMessage@chrome://remote/content/marionette/actors/MarionetteCommandsChild.sys.mjs:187:42
847:  5) Selenium::WebDriver::ActionBuilder#scroll_from scrolls from element by given amount with offset
848:  # Test guarded; Guarded by {:browser=>[:firefox, :safari], :reason=>"incorrect MoveTargetOutOfBoundsError"};
849:  Failure/Error: driver.action.scroll_from(scroll_origin, 0, 200).perform
850:  Selenium::WebDriver::Error::MoveTargetOutOfBoundsError:
851:  Move target (504, 2856) is out of bounds of viewport dimensions (1024, 596)
852:  # ./rb/lib/selenium/webdriver/remote/response.rb:63:in `add_cause'
853:  # ./rb/lib/selenium/webdriver/remote/response.rb:41:in `error'
854:  # ./rb/lib/selenium/webdriver/remote/response.rb:52:in `assert_ok'
855:  # ./rb/lib/selenium/webdriver/remote/response.rb:34:in `initialize'
856:  # ./rb/lib/selenium/webdriver/remote/http/common.rb:103:in `new'
857:  # ./rb/lib/selenium/webdriver/remote/http/common.rb:103:in `create_response'
858:  # ./rb/lib/selenium/webdriver/remote/http/default.rb:103:in `request'
859:  # ./rb/lib/selenium/webdriver/remote/http/common.rb:68:in `call'
860:  # ./rb/lib/selenium/webdriver/remote/bridge.rb:625:in `execute'
861:  # ./rb/lib/selenium/webdriver/remote/bridge.rb:353:in `send_actions'
862:  # ./rb/lib/selenium/webdriver/common/action_builder.rb:198:in `perform'
863:  # ./rb/spec/integration/selenium/webdriver/action_builder_spec.rb:357:in `block (3 levels) in <module:WebDriver>'
864:  # ------------------
865:  # --- Caused by: ---
866:  # Selenium::WebDriver::Error::WebDriverError:
867:  #   RemoteError@chrome://remote/content/shared/RemoteError.sys.mjs:8:8
868:  WebDriverError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:199:5
869:  MoveTargetOutOfBoundsError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:518:5
870:  assertTargetInViewPort@chrome://remote/content/shared/webdriver/Actions.sys.mjs:3122:11
871:  #assertInViewPort@chrome://remote/content/marionette/actors/MarionetteCommandsChild.sys.mjs:67:17
872:  receiveMessage@chrome://remote/content/marionette/actors/MarionetteCommandsChild.sys.mjs:187:42
873:  Failures:
874:  1) Selenium::WebDriver::ActionBuilder#send_keys sends keys to the active element
875:  Failure/Error: driver.navigate.to url_for('bodyTypingTest.html')
876:  Net::ReadTimeout:
...

880:  # ./rb/lib/selenium/webdriver/remote/http/common.rb:68:in `call'
881:  # ./rb/lib/selenium/webdriver/remote/bridge.rb:625:in `execute'
882:  # ./rb/lib/selenium/webdriver/remote/bridge.rb:76:in `create_session'
883:  # ./rb/lib/selenium/webdriver/common/driver.rb:325:in `block in create_bridge'
884:  # ./rb/lib/selenium/webdriver/common/driver.rb:324:in `create_bridge'
885:  # ./rb/lib/selenium/webdriver/common/driver.rb:73:in `initialize'
886:  # ./rb/lib/selenium/webdriver/firefox/driver.rb:41:in `initialize'
887:  # ./rb/lib/selenium/webdriver/common/driver.rb:53:in `new'
888:  # ./rb/lib/selenium/webdriver/common/driver.rb:53:in `for'
889:  # /Users/runner/work/selenium/selenium/rb/spec/integration/selenium/webdriver/spec_support/test_environment.rb:258:in `firefox_driver'
890:  # /Users/runner/work/selenium/selenium/rb/spec/integration/selenium/webdriver/spec_support/test_environment.rb:176:in `create_driver!'
891:  # /Users/runner/work/selenium/selenium/rb/spec/integration/selenium/webdriver/spec_support/test_environment.rb:65:in `driver_instance'
892:  # /Users/runner/work/selenium/selenium/rb/spec/integration/selenium/webdriver/spec_support/helpers.rb:25:in `driver'
893:  # ./rb/spec/integration/selenium/webdriver/action_builder_spec.rb:29:in `block (3 levels) in <module:WebDriver>'
894:  2) Selenium::WebDriver::ActionBuilder#send_keys sends keys to element
895:  Failure/Error: driver.action.send_keys(input, 'abcd').perform
896:  Selenium::WebDriver::Error::MoveTargetOutOfBoundsError:
897:  Move target (102, 600) is out of bounds of viewport dimensions (1024, 599)
898:  # ./rb/lib/selenium/webdriver/remote/response.rb:63:in `add_cause'
899:  # ./rb/lib/selenium/webdriver/remote/response.rb:41:in `error'
900:  # ./rb/lib/selenium/webdriver/remote/response.rb:52:in `assert_ok'
901:  # ./rb/lib/selenium/webdriver/remote/response.rb:34:in `initialize'
902:  # ./rb/lib/selenium/webdriver/remote/http/common.rb:103:in `new'
903:  # ./rb/lib/selenium/webdriver/remote/http/common.rb:103:in `create_response'
904:  # ./rb/lib/selenium/webdriver/remote/http/default.rb:103:in `request'
905:  # ./rb/lib/selenium/webdriver/remote/http/common.rb:68:in `call'
906:  # ./rb/lib/selenium/webdriver/remote/bridge.rb:625:in `execute'
907:  # ./rb/lib/selenium/webdriver/remote/bridge.rb:353:in `send_actions'
908:  # ./rb/lib/selenium/webdriver/common/action_builder.rb:198:in `perform'
909:  # ./rb/spec/integration/selenium/webdriver/action_builder_spec.rb:46:in `block (3 levels) in <module:WebDriver>'
910:  # ------------------
911:  # --- Caused by: ---
912:  # Selenium::WebDriver::Error::WebDriverError:
913:  #   RemoteError@chrome://remote/content/shared/RemoteError.sys.mjs:8:8
914:  WebDriverError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:199:5
915:  MoveTargetOutOfBoundsError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:518:5
916:  assertTargetInViewPort@chrome://remote/content/shared/webdriver/Actions.sys.mjs:3122:11
917:  #assertInViewPort@chrome://remote/content/marionette/actors/MarionetteCommandsChild.sys.mjs:67:17
918:  receiveMessage@chrome://remote/content/marionette/actors/MarionetteCommandsChild.sys.mjs:187:42
919:  Finished in 2 minutes 59.1 seconds (files took 0.35945 seconds to load)
920:  27 examples, 2 failures, 5 pending
921:  Failed examples:
922:  rspec ./rb/spec/integration/selenium/webdriver/action_builder_spec.rb:28 # Selenium::WebDriver::ActionBuilder#send_keys sends keys to the active element
923:  rspec ./rb/spec/integration/selenium/webdriver/action_builder_spec.rb:41 # Selenium::WebDriver::ActionBuilder#send_keys sends keys to element
924:  ================================================================================
925:  ==================== Test output for //rb/spec/integration/selenium/webdriver:action_builder-firefox:
926:  Running Ruby specs:
927:  browser: firefox
928:  driver: firefox
929:  version: stable
930:  platform: macosx
931:  ci: github
932:  rbe: false
933:  ruby: ruby 3.2.8 (2025-03-26 revision 13f495dc2c) [arm64-darwin24]
934:  Selenium::WebDriver::ActionBuilder
935:  #send_keys
936:  sends keys to the active element
937:  sends keys to element (FAILED - 1)
938:  sends keys with multiple arguments
...

952:  #context_click
953:  right clicks an element
954:  executes with equivalent pointer methods
955:  #move_to
956:  moves to element
957:  moves to element with offset
958:  #drag_and_drop
959:  moves one element to another
960:  #drag_and_drop_by
961:  moves one element a provided distance
962:  #move_to_location
963:  moves pointer to specified coordinates
964:  pen stylus
965:  sets pointer event properties (PENDING: Test guarded; Guarded by {:browser=>:firefox, :reason=>"Unknown pointerType"};)
966:  #scroll_to
967:  scrolls to element (PENDING: Test guarded; Guarded by {:browser=>:firefox, :reason=>"incorrect MoveTargetOutOfBoundsError"};)
968:  #scroll_by
969:  scrolls by given amount (PENDING: Test skipped because it breaks test run; Guarded by {:driver=>:firefox, :reason=>"inconsistent behavior between versions"};)
970:  #scroll_from
971:  scrolls from element by given amount (PENDING: Test guarded; Guarded by {:browser=>[:firefox, :safari], :reason=>"incorrect MoveTargetOutOfBoundsError"};)
972:  scrolls from element by given amount with offset (PENDING: Test guarded; Guarded by {:browser=>[:firefox, :safari], :reason=>"incorrect MoveTargetOutOfBoundsError"};)
973:  raises MoveTargetOutOfBoundsError when origin offset from element is out of viewport
974:  scrolls by given amount with offset
975:  raises MoveTargetOutOfBoundsError when origin offset is out of viewport
976:  Pending: (Failures listed here are expected and do not affect your suite's status)
977:  1) Selenium::WebDriver::ActionBuilder pen stylus sets pointer event properties
978:  # Test guarded; Guarded by {:browser=>:firefox, :reason=>"Unknown pointerType"};
979:  Failure/Error: actions.perform
980:  Selenium::WebDriver::Error::UnknownError:
981:  Error: Unimplemented pointerMove for pointerType pen
982:  # ./rb/lib/selenium/webdriver/remote/response.rb:63:in `add_cause'
983:  # ./rb/lib/selenium/webdriver/remote/response.rb:41:in `error'
984:  # ./rb/lib/selenium/webdriver/remote/response.rb:52:in `assert_ok'
985:  # ./rb/lib/selenium/webdriver/remote/response.rb:34:in `initialize'
986:  # ./rb/lib/selenium/webdriver/remote/http/common.rb:103:in `new'
987:  # ./rb/lib/selenium/webdriver/remote/http/common.rb:103:in `create_response'
988:  # ./rb/lib/selenium/webdriver/remote/http/default.rb:103:in `request'
989:  # ./rb/lib/selenium/webdriver/remote/http/common.rb:68:in `call'
990:  # ./rb/lib/selenium/webdriver/remote/bridge.rb:625:in `execute'
991:  # ./rb/lib/selenium/webdriver/remote/bridge.rb:353:in `send_actions'
992:  # ./rb/lib/selenium/webdriver/common/action_builder.rb:198:in `perform'
993:  # ./rb/spec/integration/selenium/webdriver/action_builder_spec.rb:283:in `block (3 levels) in <module:WebDriver>'
994:  # ------------------
995:  # --- Caused by: ---
996:  # Selenium::WebDriver::Error::WebDriverError:
997:  #   pointerMove@chrome://remote/content/shared/webdriver/Actions.sys.mjs:2416:11
998:  performPointerMoveStep@chrome://remote/content/shared/webdriver/Actions.sys.mjs:1636:31
999:  dispatch/<@chrome://remote/content/shared/webdriver/Actions.sys.mjs:1603:20
1000:  moveOverTime/transitions<@chrome://remote/content/shared/webdriver/Actions.sys.mjs:2343:9
1001:  2) Selenium::WebDriver::ActionBuilder#scroll_to scrolls to element
1002:  # Test guarded; Guarded by {:browser=>:firefox, :reason=>"incorrect MoveTargetOutOfBoundsError"};
1003:  Failure/Error: driver.action.scroll_to(iframe).perform
1004:  Selenium::WebDriver::Error::MoveTargetOutOfBoundsError:
1005:  Move target (410, 2802) is out of bounds of viewport dimensions (1024, 596)
1006:  # ./rb/lib/selenium/webdriver/remote/response.rb:63:in `add_cause'
1007:  # ./rb/lib/selenium/webdriver/remote/response.rb:41:in `error'
1008:  # ./rb/lib/selenium/webdriver/remote/response.rb:52:in `assert_ok'
1009:  # ./rb/lib/selenium/webdriver/remote/response.rb:34:in `initialize'
1010:  # ./rb/lib/selenium/webdriver/remote/http/common.rb:103:in `new'
1011:  # ./rb/lib/selenium/webdriver/remote/http/common.rb:103:in `create_response'
1012:  # ./rb/lib/selenium/webdriver/remote/http/default.rb:103:in `request'
1013:  # ./rb/lib/selenium/webdriver/remote/http/common.rb:68:in `call'
1014:  # ./rb/lib/selenium/webdriver/remote/bridge.rb:625:in `execute'
1015:  # ./rb/lib/selenium/webdriver/remote/bridge.rb:353:in `send_actions'
1016:  # ./rb/lib/selenium/webdriver/common/action_builder.rb:198:in `perform'
1017:  # ./rb/spec/integration/selenium/webdriver/action_builder_spec.rb:316:in `block (3 levels) in <module:WebDriver>'
1018:  # ------------------
1019:  # --- Caused by: ---
1020:  # Selenium::WebDriver::Error::WebDriverError:
1021:  #   RemoteError@chrome://remote/content/shared/RemoteError.sys.mjs:8:8
1022:  WebDriverError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:199:5
1023:  MoveTargetOutOfBoundsError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:518:5
1024:  assertTargetInViewPort@chrome://remote/content/shared/webdriver/Actions.sys.mjs:3122:11
1025:  #assertInViewPort@chrome://remote/content/marionette/actors/MarionetteCommandsChild.sys.mjs:67:17
1026:  receiveMessage@chrome://remote/content/marionette/actors/MarionetteCommandsChild.sys.mjs:187:42
1027:  3) Selenium::WebDriver::ActionBuilder#scroll_by scrolls by given amount
1028:  # Test skipped because it breaks test run; Guarded by {:driver=>:firefox, :reason=>"inconsistent behavior between versions"};
1029:  # ./rb/spec/integration/selenium/webdriver/action_builder_spec.rb:323
1030:  4) Selenium::WebDriver::ActionBuilder#scroll_from scrolls from element by given amount
1031:  # Test guarded; Guarded by {:browser=>[:firefox, :safari], :reason=>"incorrect MoveTargetOutOfBoundsError"};
1032:  Failure/Error: driver.action.scroll_from(scroll_origin, 0, 200).perform
1033:  Selenium::WebDriver::Error::MoveTargetOutOfBoundsError:
1034:  Move target (410, 2803) is out of bounds of viewport dimensions (1024, 599)
1035:  # ./rb/lib/selenium/webdriver/remote/response.rb:63:in `add_cause'
1036:  # ./rb/lib/selenium/webdriver/remote/response.rb:41:in `error'
1037:  # ./rb/lib/selenium/webdriver/remote/response.rb:52:in `assert_ok'
1038:  # ./rb/lib/selenium/webdriver/remote/response.rb:34:in `initialize'
1039:  # ./rb/lib/selenium/webdriver/remote/http/common.rb:103:in `new'
1040:  # ./rb/lib/selenium/webdriver/remote/http/common.rb:103:in `create_response'
1041:  # ./rb/lib/selenium/webdriver/remote/http/default.rb:103:in `request'
1042:  # ./rb/lib/selenium/webdriver/remote/http/common.rb:68:in `call'
1043:  # ./rb/lib/selenium/webdriver/remote/bridge.rb:625:in `execute'
1044:  # ./rb/lib/selenium/webdriver/remote/bridge.rb:353:in `send_actions'
1045:  # ./rb/lib/selenium/webdriver/common/action_builder.rb:198:in `perform'
1046:  # ./rb/spec/integration/selenium/webdriver/action_builder_spec.rb:343:in `block (3 levels) in <module:WebDriver>'
1047:  # ------------------
1048:  # --- Caused by: ---
1049:  # Selenium::WebDriver::Error::WebDriverError:
1050:  #   RemoteError@chrome://remote/content/shared/RemoteError.sys.mjs:8:8
1051:  WebDriverError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:199:5
1052:  MoveTargetOutOfBoundsError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:518:5
1053:  assertTargetInViewPort@chrome://remote/content/shared/webdriver/Actions.sys.mjs:3122:11
1054:  #assertInViewPort@chrome://remote/content/marionette/actors/MarionetteCommandsChild.sys.mjs:67:17
1055:  receiveMessage@chrome://remote/content/marionette/actors/MarionetteCommandsChild.sys.mjs:187:42
1056:  5) Selenium::WebDriver::ActionBuilder#scroll_from scrolls from element by given amount with offset
1057:  # Test guarded; Guarded by {:browser=>[:firefox, :safari], :reason=>"incorrect MoveTargetOutOfBoundsError"};
1058:  Failure/Error: driver.action.scroll_from(scroll_origin, 0, 200).perform
1059:  Selenium::WebDriver::Error::MoveTargetOutOfBoundsError:
1060:  Move target (504, 2858) is out of bounds of viewport dimensions (1024, 599)
1061:  # ./rb/lib/selenium/webdriver/remote/response.rb:63:in `add_cause'
1062:  # ./rb/lib/selenium/webdriver/remote/response.rb:41:in `error'
1063:  # ./rb/lib/selenium/webdriver/remote/response.rb:52:in `assert_ok'
1064:  # ./rb/lib/selenium/webdriver/remote/response.rb:34:in `initialize'
1065:  # ./rb/lib/selenium/webdriver/remote/http/common.rb:103:in `new'
1066:  # ./rb/lib/selenium/webdriver/remote/http/common.rb:103:in `create_response'
1067:  # ./rb/lib/selenium/webdriver/remote/http/default.rb:103:in `request'
1068:  # ./rb/lib/selenium/webdriver/remote/http/common.rb:68:in `call'
1069:  # ./rb/lib/selenium/webdriver/remote/bridge.rb:625:in `execute'
1070:  # ./rb/lib/selenium/webdriver/remote/bridge.rb:353:in `send_actions'
1071:  # ./rb/lib/selenium/webdriver/common/action_builder.rb:198:in `perform'
1072:  # ./rb/spec/integration/selenium/webdriver/action_builder_spec.rb:357:in `block (3 levels) in <module:WebDriver>'
1073:  # ------------------
1074:  # --- Caused by: ---
1075:  # Selenium::WebDriver::Error::WebDriverError:
1076:  #   RemoteError@chrome://remote/content/shared/RemoteError.sys.mjs:8:8
1077:  WebDriverError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:199:5
1078:  MoveTargetOutOfBoundsError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:518:5
1079:  assertTargetInViewPort@chrome://remote/content/shared/webdriver/Actions.sys.mjs:3122:11
1080:  #assertInViewPort@chrome://remote/content/marionette/actors/MarionetteCommandsChild.sys.mjs:67:17
1081:  receiveMessage@chrome://remote/content/marionette/actors/MarionetteCommandsChild.sys.mjs:187:42
1082:  Failures:
1083:  1) Selenium::WebDriver::ActionBuilder#send_keys sends keys to element
1084:  Failure/Error: driver.action.send_keys(input, 'abcd').perform
1085:  Selenium::WebDriver::Error::MoveTargetOutOfBoundsError:
1086:  Move target (102, 600) is out of bounds of viewport dimensions (1024, 599)
1087:  # ./rb/lib/selenium/webdriver/remote/response.rb:63:in `add_cause'
1088:  # ./rb/lib/selenium/webdriver/remote/response.rb:41:in `error'
1089:  # ./rb/lib/selenium/webdriver/remote/response.rb:52:in `assert_ok'
1090:  # ./rb/lib/selenium/webdriver/remote/response.rb:34:in `initialize'
1091:  # ./rb/lib/selenium/webdriver/remote/http/common.rb:103:in `new'
1092:  # ./rb/lib/selenium/webdriver/remote/http/common.rb:103:in `create_response'
1093:  # ./rb/lib/selenium/webdriver/remote/http/default.rb:103:in `request'
1094:  # ./rb/lib/selenium/webdriver/remote/http/common.rb:68:in `call'
1095:  # ./rb/lib/selenium/webdriver/remote/bridge.rb:625:in `execute'
1096:  # ./rb/lib/selenium/webdriver/remote/bridge.rb:353:in `send_actions'
1097:  # ./rb/lib/selenium/webdriver/common/action_builder.rb:198:in `perform'
1098:  # ./rb/spec/integration/selenium/webdriver/action_builder_spec.rb:46:in `block (3 levels) in <module:WebDriver>'
1099:  # ------------------
1100:  # --- Caused by: ---
1101:  # Selenium::WebDriver::Error::WebDriverError:
1102:  #   RemoteError@chrome://remote/content/shared/RemoteError.sys.mjs:8:8
1103:  WebDriverError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:199:5
1104:  MoveTargetOutOfBoundsError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:518:5
1105:  assertTargetInViewPort@chrome://remote/content/shared/webdriver/Actions.sys.mjs:3122:11
1106:  #assertInViewPort@chrome://remote/content/marionette/actors/MarionetteCommandsChild.sys.mjs:67:17
1107:  receiveMessage@chrome://remote/content/marionette/actors/MarionetteCommandsChild.sys.mjs:187:42
1108:  Finished in 1 minute 27.13 seconds (files took 0.30224 seconds to load)
1109:  27 examples, 1 failure, 5 pending
1110:  Failed examples:
1111:  rspec ./rb/spec/integration/selenium/webdriver/action_builder_spec.rb:41 # Selenium::WebDriver::ActionBuilder#send_keys sends keys to element
1112:  ================================================================================
1113:  ==================== Test output for //rb/spec/integration/selenium/webdriver:action_builder-firefox:
1114:  Running Ruby specs:
1115:  browser: firefox
1116:  driver: firefox
1117:  version: stable
1118:  platform: macosx
1119:  ci: github
1120:  rbe: false
1121:  ruby: ruby 3.2.8 (2025-03-26 revision 13f495dc2c) [arm64-darwin24]
1122:  Selenium::WebDriver::ActionBuilder
1123:  #send_keys
1124:  sends keys to the active element
1125:  sends keys to element (FAILED - 1)
1126:  sends keys with multiple arguments
...

1140:  #context_click
1141:  right clicks an element
1142:  executes with equivalent pointer methods
1143:  #move_to
1144:  moves to element
1145:  moves to element with offset
1146:  #drag_and_drop
1147:  moves one element to another
1148:  #drag_and_drop_by
1149:  moves one element a provided distance
1150:  #move_to_location
1151:  moves pointer to specified coordinates
1152:  pen stylus
1153:  sets pointer event properties (PENDING: Test guarded; Guarded by {:browser=>:firefox, :reason=>"Unknown pointerType"};)
1154:  #scroll_to
1155:  scrolls to element (PENDING: Test guarded; Guarded by {:browser=>:firefox, :reason=>"incorrect MoveTargetOutOfBoundsError"};)
1156:  #scroll_by
1157:  scrolls by given amount (PENDING: Test skipped because it breaks test run; Guarded by {:driver=>:firefox, :reason=>"inconsistent behavior between versions"};)
1158:  #scroll_from
1159:  scrolls from element by given amount (PENDING: Test guarded; Guarded by {:browser=>[:firefox, :safari], :reason=>"incorrect MoveTargetOutOfBoundsError"};)
1160:  scrolls from element by given amount with offset (PENDING: Test guarded; Guarded by {:browser=>[:firefox, :safari], :reason=>"incorrect MoveTargetOutOfBoundsError"};)
1161:  raises MoveTargetOutOfBoundsError when origin offset from element is out of viewport
1162:  scrolls by given amount with offset
1163:  raises MoveTargetOutOfBoundsError when origin offset is out of viewport
1164:  Pending: (Failures listed here are expected and do not affect your suite's status)
1165:  1) Selenium::WebDriver::ActionBuilder pen stylus sets pointer event properties
1166:  # Test guarded; Guarded by {:browser=>:firefox, :reason=>"Unknown pointerType"};
1167:  Failure/Error: actions.perform
1168:  Selenium::WebDriver::Error::UnknownError:
1169:  Error: Unimplemented pointerMove for pointerType pen
1170:  # ./rb/lib/selenium/webdriver/remote/response.rb:63:in `add_cause'
1171:  # ./rb/lib/selenium/webdriver/remote/response.rb:41:in `error'
1172:  # ./rb/lib/selenium/webdriver/remote/response.rb:52:in `assert_ok'
1173:  # ./rb/lib/selenium/webdriver/remote/response.rb:34:in `initialize'
1174:  # ./rb/lib/selenium/webdriver/remote/http/common.rb:103:in `new'
1175:  # ./rb/lib/selenium/webdriver/remote/http/common.rb:103:in `create_response'
1176:  # ./rb/lib/selenium/webdriver/remote/http/default.rb:103:in `request'
1177:  # ./rb/lib/selenium/webdriver/remote/http/common.rb:68:in `call'
1178:  # ./rb/lib/selenium/webdriver/remote/bridge.rb:625:in `execute'
1179:  # ./rb/lib/selenium/webdriver/remote/bridge.rb:353:in `send_actions'
1180:  # ./rb/lib/selenium/webdriver/common/action_builder.rb:198:in `perform'
1181:  # ./rb/spec/integration/selenium/webdriver/action_builder_spec.rb:283:in `block (3 levels) in <module:WebDriver>'
1182:  # ------------------
1183:  # --- Caused by: ---
1184:  # Selenium::WebDriver::Error::WebDriverError:
1185:  #   pointerMove@chrome://remote/content/shared/webdriver/Actions.sys.mjs:2416:11
1186:  performPointerMoveStep@chrome://remote/content/shared/webdriver/Actions.sys.mjs:1636:31
1187:  dispatch/<@chrome://remote/content/shared/webdriver/Actions.sys.mjs:1603:20
1188:  moveOverTime/transitions<@chrome://remote/content/shared/webdriver/Actions.sys.mjs:2343:9
1189:  2) Selenium::WebDriver::ActionBuilder#scroll_to scrolls to element
1190:  # Test guarded; Guarded by {:browser=>:firefox, :reason=>"incorrect MoveTargetOutOfBoundsError"};
1191:  Failure/Error: driver.action.scroll_to(iframe).perform
1192:  Selenium::WebDriver::Error::MoveTargetOutOfBoundsError:
1193:  Move target (410, 2802) is out of bounds of viewport dimensions (1024, 597)
1194:  # ./rb/lib/selenium/webdriver/remote/response.rb:63:in `add_cause'
1195:  # ./rb/lib/selenium/webdriver/remote/response.rb:41:in `error'
1196:  # ./rb/lib/selenium/webdriver/remote/response.rb:52:in `assert_ok'
1197:  # ./rb/lib/selenium/webdriver/remote/response.rb:34:in `initialize'
1198:  # ./rb/lib/selenium/webdriver/remote/http/common.rb:103:in `new'
1199:  # ./rb/lib/selenium/webdriver/remote/http/common.rb:103:in `create_response'
1200:  # ./rb/lib/selenium/webdriver/remote/http/default.rb:103:in `request'
1201:  # ./rb/lib/selenium/webdriver/remote/http/common.rb:68:in `call'
1202:  # ./rb/lib/selenium/webdriver/remote/bridge.rb:625:in `execute'
1203:  # ./rb/lib/selenium/webdriver/remote/bridge.rb:353:in `send_actions'
1204:  # ./rb/lib/selenium/webdriver/common/action_builder.rb:198:in `perform'
1205:  # ./rb/spec/integration/selenium/webdriver/action_builder_spec.rb:316:in `block (3 levels) in <module:WebDriver>'
1206:  # ------------------
1207:  # --- Caused by: ---
1208:  # Selenium::WebDriver::Error::WebDriverError:
1209:  #   RemoteError@chrome://remote/content/shared/RemoteError.sys.mjs:8:8
1210:  WebDriverError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:199:5
1211:  MoveTargetOutOfBoundsError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:518:5
1212:  assertTargetInViewPort@chrome://remote/content/shared/webdriver/Actions.sys.mjs:3122:11
1213:  #assertInViewPort@chrome://remote/content/marionette/actors/MarionetteCommandsChild.sys.mjs:67:17
1214:  receiveMessage@chrome://remote/content/marionette/actors/MarionetteCommandsChild.sys.mjs:187:42
1215:  3) Selenium::WebDriver::ActionBuilder#scroll_by scrolls by given amount
1216:  # Test skipped because it breaks test run; Guarded by {:driver=>:firefox, :reason=>"inconsistent behavior between versions"};
1217:  # ./rb/spec/integration/selenium/webdriver/action_builder_spec.rb:323
1218:  4) Selenium::WebDriver::ActionBuilder#scroll_from scrolls from element by given amount
1219:  # Test guarded; Guarded by {:browser=>[:firefox, :safari], :reason=>"incorrect MoveTargetOutOfBoundsError"};
1220:  Failure/Error: driver.action.scroll_from(scroll_origin, 0, 200).perform
1221:  Selenium::WebDriver::Error::MoveTargetOutOfBoundsError:
1222:  Move target (410, 2803) is out of bounds of viewport dimensions (1024, 599)
1223:  # ./rb/lib/selenium/webdriver/remote/response.rb:63:in `add_cause'
1224:  # ./rb/lib/selenium/webdriver/remote/response.rb:41:in `error'
1225:  # ./rb/lib/selenium/webdriver/remote/response.rb:52:in `assert_ok'
1226:  # ./rb/lib/selenium/webdriver/remote/response.rb:34:in `initialize'
1227:  # ./rb/lib/selenium/webdriver/remote/http/common.rb:103:in `new'
1228:  # ./rb/lib/selenium/webdriver/remote/http/common.rb:103:in `create_response'
1229:  # ./rb/lib/selenium/webdriver/remote/http/default.rb:103:in `request'
1230:  # ./rb/lib/selenium/webdriver/remote/http/common.rb:68:in `call'
1231:  # ./rb/lib/selenium/webdriver/remote/bridge.rb:625:in `execute'
1232:  # ./rb/lib/selenium/webdriver/remote/bridge.rb:353:in `send_actions'
1233:  # ./rb/lib/selenium/webdriver/common/action_builder.rb:198:in `perform'
1234:  # ./rb/spec/integration/selenium/webdriver/action_builder_spec.rb:343:in `block (3 levels) in <module:WebDriver>'
1235:  # ------------------
1236:  # --- Caused by: ---
1237:  # Selenium::WebDriver::Error::WebDriverError:
1238:  #   RemoteError@chrome://remote/content/shared/RemoteError.sys.mjs:8:8
1239:  WebDriverError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:199:5
1240:  MoveTargetOutOfBoundsError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:518:5
1241:  assertTargetInViewPort@chrome://remote/content/shared/webdriver/Actions.sys.mjs:3122:11
1242:  #assertInViewPort@chrome://remote/content/marionette/actors/MarionetteCommandsChild.sys.mjs:67:17
1243:  receiveMessage@chrome://remote/content/marionette/actors/MarionetteCommandsChild.sys.mjs:187:42
1244:  5) Selenium::WebDriver::ActionBuilder#scroll_from scrolls from element by given amount with offset
1245:  # Test guarded; Guarded by {:browser=>[:firefox, :safari], :reason=>"incorrect MoveTargetOutOfBoundsError"};
1246:  Failure/Error: driver.action.scroll_from(scroll_origin, 0, 200).perform
1247:  Selenium::WebDriver::Error::MoveTargetOutOfBoundsError:
1248:  Move target (504, 2858) is out of bounds of viewport dimensions (1024, 599)
1249:  # ./rb/lib/selenium/webdriver/remote/response.rb:63:in `add_cause'
1250:  # ./rb/lib/selenium/webdriver/remote/response.rb:41:in `error'
1251:  # ./rb/lib/selenium/webdriver/remote/response.rb:52:in `assert_ok'
1252:  # ./rb/lib/selenium/webdriver/remote/response.rb:34:in `initialize'
1253:  # ./rb/lib/selenium/webdriver/remote/http/common.rb:103:in `new'
1254:  # ./rb/lib/selenium/webdriver/remote/http/common.rb:103:in `create_response'
1255:  # ./rb/lib/selenium/webdriver/remote/http/default.rb:103:in `request'
1256:  # ./rb/lib/selenium/webdriver/remote/http/common.rb:68:in `call'
1257:  # ./rb/lib/selenium/webdriver/remote/bridge.rb:625:in `execute'
1258:  # ./rb/lib/selenium/webdriver/remote/bridge.rb:353:in `send_actions'
1259:  # ./rb/lib/selenium/webdriver/common/action_builder.rb:198:in `perform'
1260:  # ./rb/spec/integration/selenium/webdriver/action_builder_spec.rb:357:in `block (3 levels) in <module:WebDriver>'
1261:  # ------------------
1262:  # --- Caused by: ---
1263:  # Selenium::WebDriver::Error::WebDriverError:
1264:  #   RemoteError@chrome://remote/content/shared/RemoteError.sys.mjs:8:8
1265:  WebDriverError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:199:5
1266:  MoveTargetOutOfBoundsError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:518:5
1267:  assertTargetInViewPort@chrome://remote/content/shared/webdriver/Actions.sys.mjs:3122:11
1268:  #assertInViewPort@chrome://remote/content/marionette/actors/MarionetteCommandsChild.sys.mjs:67:17
1269:  receiveMessage@chrome://remote/content/marionette/actors/MarionetteCommandsChild.sys.mjs:187:42
1270:  Failures:
1271:  1) Selenium::WebDriver::ActionBuilder#send_keys sends keys to element
1272:  Failure/Error: driver.action.send_keys(input, 'abcd').perform
1273:  Selenium::WebDriver::Error::MoveTargetOutOfBoundsError:
1274:  Move target (102, 598) is out of bounds of viewport dimensions (1024, 596)
1275:  # ./rb/lib/selenium/webdriver/remote/response.rb:63:in `add_cause'
1276:  # ./rb/lib/selenium/webdriver/remote/response.rb:41:in `error'
1277:  # ./rb/lib/selenium/webdriver/remote/response.rb:52:in `assert_ok'
1278:  # ./rb/lib/selenium/webdriver/remote/response.rb:34:in `initialize'
1279:  # ./rb/lib/selenium/webdriver/remote/http/common.rb:103:in `new'
1280:  # ./rb/lib/selenium/webdriver/remote/http/common.rb:103:in `create_response'
1281:  # ./rb/lib/selenium/webdriver/remote/http/default.rb:103:in `request'
1282:  # ./rb/lib/selenium/webdriver/remote/http/common.rb:68:in `call'
1283:  # ./rb/lib/selenium/webdriver/remote/bridge.rb:625:in `execute'
1284:  # ./rb/lib/selenium/webdriver/remote/bridge.rb:353:in `send_actions'
1285:  # ./rb/lib/selenium/webdriver/common/action_builder.rb:198:in `perform'
1286:  # ./rb/spec/integration/selenium/webdriver/action_builder_spec.rb:46:in `block (3 levels) in <module:WebDriver>'
1287:  # ------------------
1288:  # --- Caused by: ---
1289:  # Selenium::WebDriver::Error::WebDriverError:
1290:  #   RemoteError@chrome://remote/content/shared/RemoteError.sys.mjs:8:8
1291:  WebDriverError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:199:5
1292:  MoveTargetOutOfBoundsError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:518:5
1293:  assertTargetInViewPort@chrome://remote/content/shared/webdriver/Actions.sys.mjs:3122:11
1294:  #assertInViewPort@chrome://remote/content/marionette/actors/MarionetteCommandsChild.sys.mjs:67:17
1295:  receiveMessage@chrome://remote/content/marionette/actors/MarionetteCommandsChild.sys.mjs:187:42
1296:  Finished in 1 minute 13.59 seconds (files took 0.22056 seconds to load)
1297:  27 examples, 1 failure, 5 pending
1298:  Failed examples:
1299:  rspec ./rb/spec/integration/selenium/webdriver/action_builder_spec.rb:41 # Selenium::WebDriver::ActionBuilder#send_keys sends keys to element
1300:  ================================================================================
1301:  �[32m[1,306 / 1,307]�[0m 20 / 28 tests, �[31m�[1m1 failed�[0m;�[0m Testing //rb/spec/integration/selenium/webdriver:window-firefox; 224s local, disk-cache
1302:  �[32m[1,306 / 1,307]�[0m 20 / 28 tests, �[31m�[1m1 failed�[0m;�[0m Testing //rb/spec/integration/selenium/webdriver:window-firefox; 235s local, disk-cache
1303:  �[32m[1,306 / 1,307]�[0m 20 / 28 tests, �[31m�[1m1 failed�[0m;�[0m Testing //rb/spec/integration/selenium/webdriver:window-firefox; 250s local, disk-cache
1304:  �[31m�[1mFAIL: �[0m//rb/spec/integration/selenium/webdriver:window-firefox (see /Users/runner/.bazel/execroot/_main/bazel-out/darwin_arm64-fastbuild/testlogs/rb/spec/integration/selenium/webdriver/window-firefox/test.log)
1305:  ==================== Test output for //rb/spec/integration/selenium/webdriver:window-firefox:
1306:  �[31m�[1mFAILED: �[0m//rb/spec/integration/selenium/webdriver:window-firefox (Summary)
1307:  /Users/runner/.bazel/execroot/_main/bazel-out/darwin_arm64-fastbuild/testlogs/rb/spec/integration/selenium/webdriver/window-firefox/test.log
...

1311:  browser: firefox
1312:  �[32mINFO: �[0mFrom Testing //rb/spec/integration/selenium/webdriver:window-firefox:
1313:  driver: firefox
1314:  version: stable
1315:  platform: macosx
1316:  ci: github
1317:  rbe: false
1318:  ruby: ruby 3.2.8 (2025-03-26 revision 13f495dc2c) [arm64-darwin24]
1319:  Selenium::WebDriver::Window
1320:  gets the size of the current window
1321:  sets the size of the current window
1322:  gets the position of the current window
1323:  sets the position of the current window
1324:  gets the rect of the current window
1325:  sets the rect of the current window
1326:  can maximize the current window (FAILED - 1)
1327:  can make window full screen
1328:  can minimize the window
1329:  Failures:
1330:  1) Selenium::WebDriver::Window can maximize the current window
1331:  Failure/Error: expect(new_size.height).to be > old_size.height
1332:  expected: > 700
1333:  got:   684
1334:  # ./rb/spec/integration/selenium/webdriver/window_spec.rb:113:in `block (2 levels) in <module:WebDriver>'
1335:  Finished in 27.31 seconds (files took 0.67182 seconds to load)
1336:  9 examples, 1 failure
1337:  Failed examples:
1338:  rspec ./rb/spec/integration/selenium/webdriver/window_spec.rb:105 # Selenium::WebDriver::Window can maximize the current window
...

1341:  Running Ruby specs:
1342:  browser: firefox
1343:  driver: firefox
1344:  version: stable
1345:  platform: macosx
1346:  ci: github
1347:  rbe: false
1348:  ruby: ruby 3.2.8 (2025-03-26 revision 13f495dc2c) [arm64-darwin24]
1349:  Selenium::WebDriver::Window
1350:  gets the size of the current window
1351:  sets the size of the current window
1352:  gets the position of the current window
1353:  sets the position of the current window
1354:  gets the rect of the current window
1355:  sets the rect of the current window
1356:  can maximize the current window (FAILED - 1)
1357:  can make window full screen
1358:  can minimize the window
1359:  Failures:
1360:  1) Selenium::WebDriver::Window can maximize the current window
1361:  Failure/Error: expect(new_size.height).to be > old_size.height
1362:  expected: > 700
1363:  got:   684
1364:  # ./rb/spec/integration/selenium/webdriver/window_spec.rb:113:in `block (2 levels) in <module:WebDriver>'
1365:  Finished in 28.42 seconds (files took 0.5239 seconds to load)
1366:  9 examples, 1 failure
1367:  Failed examples:
1368:  rspec ./rb/spec/integration/selenium/webdriver/window_spec.rb:105 # Selenium::WebDriver::Window can maximize the current window
...

1371:  Running Ruby specs:
1372:  browser: firefox
1373:  driver: firefox
1374:  version: stable
1375:  platform: macosx
1376:  ci: github
1377:  rbe: false
1378:  ruby: ruby 3.2.8 (2025-03-26 revision 13f495dc2c) [arm64-darwin24]
1379:  Selenium::WebDriver::Window
1380:  gets the size of the current window
1381:  sets the size of the current window
1382:  gets the position of the current window
1383:  sets the position of the current window
1384:  gets the rect of the current window
1385:  sets the rect of the current window
1386:  can maximize the current window (FAILED - 1)
1387:  can make window full screen
1388:  can minimize the window
1389:  Failures:
1390:  1) Selenium::WebDriver::Window can maximize the current window
1391:  Failure/Error: expect(new_size.height).to be > old_size.height
1392:  expected: > 700
1393:  got:   684
1394:  # ./rb/spec/integration/selenium/webdriver/window_spec.rb:113:in `block (2 levels) in <module:WebDriver>'
1395:  Finished in 26.8 seconds (files took 0.19324 seconds to load)
1396:  9 examples, 1 failure
1397:  Failed examples:
1398:  rspec ./rb/spec/integration/selenium/webdriver/window_spec.rb:105 # Selenium::WebDriver::Window can maximize the current window
1399:  ================================================================================
1400:  �[32m[1,312 / 1,313]�[0m 26 / 28 tests, �[31m�[1m2 failed�[0m;�[0m Testing //rb/spec/integration/selenium/webdriver/bidi:log_inspector-firefox; 0s disk-cache
1401:  �[32mINFO: �[0mFound 28 test targets...
1402:  �[32mINFO: �[0mElapsed time: 506.141s, Critical Path: 433.30s
1403:  �[32mINFO: �[0m1314 processes: 623 disk cache hit, 672 internal, 7 darwin-sandbox, 12 local.
1404:  //rb/spec/integration/selenium/webdriver:bidi-firefox           �[0m�[32m(cached) PASSED�[0m in 0.5s
1405:  �[32mINFO: �[0mBuild completed, 2 tests FAILED, 1314 total actions
1406:  //rb/spec/integration/selenium/webdriver:devtools-firefox       �[0m�[32m(cached) PASSED�[0m in 0.5s
1407:  //rb/spec/integration/selenium/webdriver:driver-firefox         �[0m�[32m(cached) PASSED�[0m in 19.9s
1408:  //rb/spec/integration/selenium/webdriver:element-firefox        �[0m�[32m(cached) PASSED�[0m in 45.2s
1409:  //rb/spec/integration/selenium/webdriver:error-firefox          �[0m�[32m(cached) PASSED�[0m in 15.7s
1410:  //rb/spec/integration/selenium/webdriver:fedcm-firefox          �[0m�[32m(cached) PASSED�[0m in 74.7s
...

1417:  //rb/spec/integration/selenium/webdriver:shadow_root-firefox    �[0m�[32m(cached) PASSED�[0m in 43.6s
1418:  //rb/spec/integration/selenium/webdriver:takes_screenshot-firefox �[0m�[32m(cached) PASSED�[0m in 23.7s
1419:  //rb/spec/integration/selenium/webdriver:target_locator-firefox �[0m�[32m(cached) PASSED�[0m in 65.6s
1420:  //rb/spec/integration/selenium/webdriver:timeout-firefox        �[0m�[32m(cached) PASSED�[0m in 16.2s
1421:  //rb/spec/integration/selenium/webdriver:virtual_authenticator-firefox �[0m�[32m(cached) PASSED�[0m in 1.6s
1422:  //rb/spec/integration/selenium/webdriver/bidi:browser-firefox   �[0m�[32m(cached) PASSED�[0m in 0.5s
1423:  //rb/spec/integration/selenium/webdriver/bidi:browsing_context-firefox �[0m�[32m(cached) PASSED�[0m in 0.5s
1424:  //rb/spec/integration/selenium/webdriver/bidi:log_inspector-firefox �[0m�[32m(cached) PASSED�[0m in 0.5s
1425:  //rb/spec/integration/selenium/webdriver/bidi:network-firefox   �[0m�[32m(cached) PASSED�[0m in 0.6s
1426:  //rb/spec/integration/selenium/webdriver/bidi:script-firefox    �[0m�[32m(cached) PASSED�[0m in 0.5s
1427:  //rb/spec/integration/selenium/webdriver/firefox:driver-firefox �[0m�[32m(cached) PASSED�[0m in 32.3s
1428:  //rb/spec/integration/selenium/webdriver/firefox:profile-firefox �[0m�[32m(cached) PASSED�[0m in 25.9s
1429:  //rb/spec/integration/selenium/webdriver/firefox:service-firefox �[0m�[32m(cached) PASSED�[0m in 2.5s
1430:  //rb/spec/integration/selenium/webdriver/remote:driver-firefox  �[0m�[32m(cached) PASSED�[0m in 0.9s
1431:  //rb/spec/integration/selenium/webdriver/remote:element-firefox �[0m�[32m(cached) PASSED�[0m in 8.0s
1432:  //rb/spec/integration/selenium/webdriver:action_builder-firefox          �[0m�[31m�[1mFAILED�[0m in 3 out of 3 in 180.8s
1433:  Stats over 3 runs: max = 180.8s, min = 74.3s, avg = 114.6s, dev = 47.2s
1434:  /Users/runner/.bazel/execroot/_main/bazel-out/darwin_arm64-fastbuild/testlogs/rb/spec/integration/selenium/webdriver/action_builder-firefox/test.log
1435:  /Users/runner/.bazel/execroot/_main/bazel-out/darwin_arm64-fastbuild/testlogs/rb/spec/integration/selenium/webdriver/action_builder-firefox/test_attempts/attempt_1.log
1436:  /Users/runner/.bazel/execroot/_main/bazel-out/darwin_arm64-fastbuild/testlogs/rb/spec/integration/selenium/webdriver/action_builder-firefox/test_attempts/attempt_2.log
1437:  //rb/spec/integration/selenium/webdriver:window-firefox                  �[0m�[31m�[1mFAILED�[0m in 3 out of 3 in 30.4s
1438:  Stats over 3 runs: max = 30.4s, min = 27.7s, avg = 29.2s, dev = 1.1s
1439:  /Users/runner/.bazel/execroot/_main/bazel-out/darwin_arm64-fastbuild/testlogs/rb/spec/integration/selenium/webdriver/window-firefox/test.log
1440:  /Users/runner/.bazel/execroot/_main/bazel-out/darwin_arm64-fastbuild/testlogs/rb/spec/integration/selenium/webdriver/window-firefox/test_attempts/attempt_1.log
1441:  /Users/runner/.bazel/execroot/_main/bazel-out/darwin_arm64-fastbuild/testlogs/rb/spec/integration/selenium/webdriver/window-firefox/test_attempts/attempt_2.log
1442:  Executed 2 out of 28 tests: 26 tests pass and �[0m�[31m�[1m2 fail locally�[0m.
1443:  There were tests whose specified size is too big. Use the --test_verbose_timeout_warnings command line option to see which ones these are.
1444:  ##[error]Process completed with exit code 3.
1445:  Post job cleanup.

@VietND96 VietND96 merged commit 3491e41 into trunk Sep 5, 2025
31 of 32 checks passed
@VietND96 VietND96 deleted the netty-4.2 branch September 5, 2025 12:51
dnegreira added a commit to dnegreira/advisories that referenced this pull request Sep 10, 2025
Update advisories GHSA-3p8m-j85q-pgmj and GHSA-fghv-69vj-qj49
We are unable to bump netty-codec or netty-codec-http to a newer version
without breaking the build. Upstream already has a fix in place for a
future version, and we should await for a new build with the fixed
versions. More information:
SeleniumHQ/selenium#16194

Signed-off-by: David Negreira <[email protected]>
dnegreira added a commit to dnegreira/advisories that referenced this pull request Sep 10, 2025
Update advisories GHSA-3p8m-j85q-pgmj and GHSA-fghv-69vj-qj49
We are unable to bump netty-codec or netty-codec-http to a newer version
without breaking the build. Upstream already has a fix in place for a
future version, and we should await for a new build with the fixed
versions. More information:
SeleniumHQ/selenium#16194
github-merge-queue bot pushed a commit to wolfi-dev/advisories that referenced this pull request Sep 10, 2025
Update advisories GHSA-3p8m-j85q-pgmj and GHSA-fghv-69vj-qj49
We are unable to bump netty-codec or netty-codec-http to a newer version
without breaking the build. Upstream already has a fix in place for a
future version, and we should await for a new build with the fixed
versions. More information:
SeleniumHQ/selenium#16194

Signed-off-by: David Negreira <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

B-grid Everything grid and server related Review effort 3/5

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants