elixir-wallaby/wallaby

Passed capabilities may be passed in the wrong format

Rukomoynikov opened this issue · 1 comments

Elixir and Erlang/OTP versions

Erlang/OTP 25 [erts-13.1.4] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] [jit] [dtrace]
Elixir 1.14.3 (compiled with Erlang/OTP 25)

Operating system

Mac OS Ventura 13.4.1 (22F82)

Browser

Chrome Headless

Driver

Selenium

Correct Configuration

  • I confirm that I have Wallaby configured correctly.

Current behavior

Hello all.

I'm trying to set up Wallaby Selenium in GitHub Actions. Before moving to GH Actions I want to make this work locally. But it doesn't initiate a new session. Probably it's my local problem but I found one questionable moment.

Here is my Wallaby configuration

config :wallaby,
  otp_app: :codemetrics_el,
  driver: Wallaby.Selenium,
  selenium: [
    capabilities: %{
      javascriptEnabled: true,
      browserName: "chrome",
      chromeOptions: %{
        args: [
          "--no-sandbox",
          "window-size=1280,800",
          "--disable-gpu",
          "--headless",
          "--fullscreen",
        ]
      }
    }
  ],
  screenshot_dir: "tmp/wallaby_screenshots",
  screenshot_on_failure: true

And I start Chrome in Selenium Grid this way

docker run --rm -e SE_NODE_MAX_SESSIONS=8 -e SE_NODE_OVERRIDE_MAX_SESSIONS=true --shm-size="2g" -p 4444:4444 -p 5900:5900 -p 7900:7900 selenium/standalone-chrome:latest

When I start tests, I see Wallaby's requests to Selenium with the following parameters.

"http://localhost:4444/wd/hub/session"
"{\"desiredCapabilities\":{\"browserName\":\"chrome\",\"chromeOptions\":{\"args\":[\"--no-sandbox\",\"window-size=1280,800\",\"--disable-gpu\",\"--headless\",\"--fullscreen\"]},\"javascriptEnabled\":true}}"

When the Selenium Grid, I see these requests like with an empty list of desired capabilities
Screenshot 2023-07-29 at 20 30 48
Screenshot 2023-07-29 at 20 39 20

It ends up with a timeout request for a session.

Expected behaviour

It looks weird that list of capabilities is empty In Selenium Grid. My guess is since capabilities (particularly browserName parameter) are empty, Selenium Grid doesn't know what type of a session should be created.

Test Code & HTML

All test data provided in the "Current behaviour" section.

Demonstration Project

No response

I made it work with Chrome 103, but it doesn't work at least in 114.