Skip to content

Calling of hover method causes wrong number of arguments (given 4, expected 2) error #2334

Closed
@differencialx

Description

@differencialx

Note: Hi there, not sure if it is capybara issue or selenium-webdriver
When hover method is called I'm receiving such error wrong number of arguments (given 4, expected 2)

It happened after I upgraded to 3.32.0 version of capybara
Next change in capybara gem causes this error
Capybara:
fcb5e1b#diff-fb0d5aa4dd5a7c98ac50fafad9e73d17R4

Selenium-Webdriver code:
https://github.com/SeleniumHQ/selenium/blob/master/rb/lib/selenium/webdriver/remote/bridge.rb#L369

But I'm not sure where it should be fixed. On selenium-webdriver or capybara side

Meta

Capybara Version:
3.32.0
Driver Information (and browser if relevant):
selenium-webdriver 4.0.0.alpha5

Expected Behavior

hover method should work

Actual Behavior

# Exception stack
ArgumentError:
       wrong number of arguments (given 4, expected 2)
    # /home/******/.rvm/gems/ruby-2.7.0@*****/gems/capybara-3.32.0/lib/capybara/selenium/patches/action_pauser.rb:4:in `initialize'
    # /home/******/.rvm/gems/ruby-2.7.0@*****/gems/selenium-webdriver-4.0.0.alpha4/lib/selenium/webdriver/remote/bridge.rb:369:in `new'
    # /home/******/.rvm/gems/ruby-2.7.0@*****/gems/selenium-webdriver-4.0.0.alpha4/lib/selenium/webdriver/remote/bridge.rb:369:in `action'
    # /home/******/.rvm/gems/ruby-2.7.0@*****/gems/selenium-webdriver-4.0.0.alpha4/lib/selenium/webdriver/common/driver.rb:117:in `action'
    # /home/******/.rvm/gems/ruby-2.7.0@*****/gems/capybara-3.32.0/lib/capybara/selenium/node.rb:440:in `browser_action'
    # /home/******/.rvm/gems/ruby-2.7.0@*****/gems/capybara-3.32.0/lib/capybara/selenium/node.rb:161:in `block in hover'
    # /home/******/.rvm/gems/ruby-2.7.0@*****/gems/capybara-3.32.0/lib/capybara/selenium/node.rb:224:in `scroll_if_needed'
    # /home/******/.rvm/gems/ruby-2.7.0@*****/gems/capybara-3.32.0/lib/capybara/selenium/node.rb:161:in `hover'
    # /home/******/.rvm/gems/ruby-2.7.0@*****/gems/capybara-3.32.0/lib/capybara/node/element.rb:285:in `block in hover'
    # /home/******/.rvm/gems/ruby-2.7.0@*****/gems/capybara-3.32.0/lib/capybara/node/base.rb:83:in `synchronize'
    # /home/******/.rvm/gems/ruby-2.7.0@*****/gems/capybara-3.32.0/lib/capybara/node/element.rb:285:in `hover'
    # ./spec/features/documentation_spec.rb:34:in `block (3 levels) in <top (required)>'
    # /home/******/.rvm/gems/ruby-2.7.0@******/gems/rspec-retry-0.6.1/lib/rspec/retry.rb:123:in `block in run'
    # /home/******/.rvm/gems/ruby-2.7.0@******/gems/rspec-retry-0.6.1/lib/rspec/retry.rb:110:in `loop'
    # /home/******/.rvm/gems/ruby-2.7.0@******/gems/rspec-retry-0.6.1/lib/rspec/retry.rb:110:in `run'
    # /home/******/.rvm/gems/ruby-2.7.0@******/gems/rspec-retry-0.6.1/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry'
    # ./spec/spec_helper.rb:90:in `block (2 levels) in <top (required)>'
    # /home/******/.rvm/gems/ruby-2.7.0@*******/gems/rspec-retry-0.6.1/lib/rspec/retry.rb:123:in `block in run'
    # /home/******/.rvm/gems/ruby-2.7.0@*******/gems/rspec-retry-0.6.1/lib/rspec/retry.rb:110:in `loop'
    # /home/******/.rvm/gems/ruby-2.7.0@*******/gems/rspec-retry-0.6.1/lib/rspec/retry.rb:110:in `run'
    # /home/******/.rvm/gems/ruby-2.7.0@*******/gems/rspec-retry-0.6.1/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry'
    # /home/******/.rvm/gems/ruby-2.7.0@*******/gems/rspec-retry-0.6.1/lib/rspec/retry.rb:37:in `block (2 levels) in setup'

Steps to reproduce

Just use call hover method on found element

find('[data-js="demo-keys-hint"]', match: :first).hover

Activity

twalpole

twalpole commented on Apr 3, 2020

@twalpole
Member

This looks like it is because Selenium changed a class name in the 4.0 alpha - Please stick with 3.31 Capybara for now - this'll be fixed over the weekend

differencialx

differencialx commented on Apr 3, 2020

@differencialx
Author

@twalpole Thank you

twalpole

twalpole commented on Apr 3, 2020

@twalpole
Member

@differencialx Actually, could you please try the pause_fix branch of this repo and see if that fixes your issue

differencialx

differencialx commented on Apr 3, 2020

@differencialx
Author

@twalpole yes, using pause_fix branch fixes the issue and using of capybara 3.31.0 also fixes this issue

added a commit that references this issue on Apr 4, 2020

Merge pull request #2335 from teamcapybara/pause_fix

cd84cc0
twalpole

twalpole commented on Apr 4, 2020

@twalpole
Member

Fixed via PR #2335

differencialx

differencialx commented on Apr 6, 2020

@differencialx
Author

👍

locked and limited conversation to collaborators on May 6, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @twalpole@differencialx

        Issue actions

          Calling of hover method causes wrong number of arguments (given 4, expected 2) error · Issue #2334 · teamcapybara/capybara