Page MenuHomePhabricator

Selenium tests broken on Ruby 2.4
Closed, ResolvedPublic

Description

$ git remote -v
origin	ssh://zfilipin@gerrit.wikimedia.org:29418/mediawiki/core.git (fetch)
origin	ssh://zfilipin@gerrit.wikimedia.org:29418/mediawiki/core.git (push)

$ ruby -v
ruby 2.4.0p0 (2016-12-24 revision 57164) [x86_64-darwin16]

$ bundle exec rake selenium
/usr/local/lib/ruby/gems/2.4.0/gems/rake-11.1.1/lib/rake/ext/fixnum.rb:4: warning: constant ::Fixnum is deprecated
[DEPRECATION] `last_comment` is deprecated.  Please use `last_description` instead.
/usr/local/Cellar/ruby/2.4.0/bin/ruby -S bundle exec cucumber tests/browser --tags @firefox
/usr/local/lib/ruby/gems/2.4.0/gems/data_magic-1.0/lib/data_magic/core_ext/fixnum.rb:1: warning: constant ::Fixnum is deprecated
/usr/local/lib/ruby/gems/2.4.0/gems/watir-webdriver-0.9.3/lib/watir-webdriver/elements/html_elements.rb:17: warning: constant ::Fixnum is deprecated
(...)
/usr/local/lib/ruby/gems/2.4.0/gems/watir-webdriver-0.9.3/lib/watir-webdriver/elements/svg_elements.rb:311: warning: constant ::Fixnum is deprecated
undefined method `col_span' for class `Watir::TableCell' (NameError)
/usr/local/lib/ruby/gems/2.4.0/gems/watir-webdriver-0.9.3/lib/watir-webdriver/elements/table_cell.rb:3:in `alias_method'
/usr/local/lib/ruby/gems/2.4.0/gems/watir-webdriver-0.9.3/lib/watir-webdriver/elements/table_cell.rb:3:in `<class:TableCell>'
/usr/local/lib/ruby/gems/2.4.0/gems/watir-webdriver-0.9.3/lib/watir-webdriver/elements/table_cell.rb:2:in `<module:Watir>'
/usr/local/lib/ruby/gems/2.4.0/gems/watir-webdriver-0.9.3/lib/watir-webdriver/elements/table_cell.rb:1:in `<top (required)>'
/usr/local/Cellar/ruby/2.4.0/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require'
/usr/local/Cellar/ruby/2.4.0/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require'
/usr/local/lib/ruby/gems/2.4.0/gems/watir-webdriver-0.9.3/lib/watir-webdriver.rb:119:in `<top (required)>'
/usr/local/Cellar/ruby/2.4.0/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require'
/usr/local/Cellar/ruby/2.4.0/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require'
/usr/local/lib/ruby/gems/2.4.0/gems/mediawiki_selenium-1.7.4/lib/mediawiki_selenium/cucumber/env.rb:3:in `<top (required)>'
/usr/local/Cellar/ruby/2.4.0/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require'
/usr/local/Cellar/ruby/2.4.0/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require'
/usr/local/lib/ruby/gems/2.4.0/gems/mediawiki_selenium-1.7.4/lib/mediawiki_selenium/cucumber.rb:3:in `<top (required)>'
/usr/local/Cellar/ruby/2.4.0/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require'
/usr/local/Cellar/ruby/2.4.0/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require'
/Users/z/Documents/gerrit/mediawiki/vagrant/mediawiki/tests/browser/features/support/env.rb:1:in `<top (required)>'
/usr/local/lib/ruby/gems/2.4.0/gems/cucumber-1.3.20/lib/cucumber/rb_support/rb_language.rb:95:in `load'
/usr/local/lib/ruby/gems/2.4.0/gems/cucumber-1.3.20/lib/cucumber/rb_support/rb_language.rb:95:in `load_code_file'
/usr/local/lib/ruby/gems/2.4.0/gems/cucumber-1.3.20/lib/cucumber/runtime/support_code.rb:180:in `load_file'
/usr/local/lib/ruby/gems/2.4.0/gems/cucumber-1.3.20/lib/cucumber/runtime/support_code.rb:83:in `block in load_files!'
/usr/local/lib/ruby/gems/2.4.0/gems/cucumber-1.3.20/lib/cucumber/runtime/support_code.rb:82:in `each'
/usr/local/lib/ruby/gems/2.4.0/gems/cucumber-1.3.20/lib/cucumber/runtime/support_code.rb:82:in `load_files!'
/usr/local/lib/ruby/gems/2.4.0/gems/cucumber-1.3.20/lib/cucumber/runtime.rb:184:in `load_step_definitions'
/usr/local/lib/ruby/gems/2.4.0/gems/cucumber-1.3.20/lib/cucumber/runtime.rb:42:in `run!'
/usr/local/lib/ruby/gems/2.4.0/gems/cucumber-1.3.20/lib/cucumber/cli/main.rb:47:in `execute!'
/usr/local/lib/ruby/gems/2.4.0/gems/cucumber-1.3.20/bin/cucumber:13:in `<top (required)>'
/usr/local/bin/cucumber:22:in `load'
/usr/local/bin/cucumber:22:in `<top (required)>'
/usr/local/lib/ruby/gems/2.4.0/gems/bundler-1.14.3/lib/bundler/cli/exec.rb:74:in `load'
/usr/local/lib/ruby/gems/2.4.0/gems/bundler-1.14.3/lib/bundler/cli/exec.rb:74:in `kernel_load'
/usr/local/lib/ruby/gems/2.4.0/gems/bundler-1.14.3/lib/bundler/cli/exec.rb:27:in `run'
/usr/local/lib/ruby/gems/2.4.0/gems/bundler-1.14.3/lib/bundler/cli.rb:335:in `exec'
/usr/local/lib/ruby/gems/2.4.0/gems/bundler-1.14.3/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
/usr/local/lib/ruby/gems/2.4.0/gems/bundler-1.14.3/lib/bundler/vendor/thor/lib/thor/invocation.rb:126:in `invoke_command'
/usr/local/lib/ruby/gems/2.4.0/gems/bundler-1.14.3/lib/bundler/vendor/thor/lib/thor.rb:359:in `dispatch'
/usr/local/lib/ruby/gems/2.4.0/gems/bundler-1.14.3/lib/bundler/cli.rb:20:in `dispatch'
/usr/local/lib/ruby/gems/2.4.0/gems/bundler-1.14.3/lib/bundler/vendor/thor/lib/thor/base.rb:440:in `start'
/usr/local/lib/ruby/gems/2.4.0/gems/bundler-1.14.3/lib/bundler/cli.rb:11:in `start'
/usr/local/lib/ruby/gems/2.4.0/gems/bundler-1.14.3/exe/bundle:32:in `block in <top (required)>'
/usr/local/lib/ruby/gems/2.4.0/gems/bundler-1.14.3/lib/bundler/friendly_errors.rb:121:in `with_friendly_errors'
/usr/local/lib/ruby/gems/2.4.0/gems/bundler-1.14.3/exe/bundle:24:in `<top (required)>'
/usr/local/bin/bundle:22:in `load'
/usr/local/bin/bundle:22:in `<main>'

Event Timeline

Change 336824 had a related patch set uploaded (by Zfilipin):
WIP Selenium tests broken on Ruby 2.4

https://gerrit.wikimedia.org/r/336824

Change 336825 had a related patch set uploaded (by Zfilipin):
WIP Selenium tests broken on Ruby 2.4

https://gerrit.wikimedia.org/r/336825

We already talked about it see https://github.com/watir/watir/issues/519#issuecomment-271015471

watir-driver 0.9.x is not compatible with ruby2.4 due to Fixnum which causes:

 webdriver/elements/svg_elements.rb:311: warning: constant ::Fixnum is deprecated
undefined method `col_span' for class `Watir::TableCell' (NameError)

watir 6 requires selenium 3 when we are still on 2.x. So if we want to support ruby2.4, we have to upgrade to Selenium 3!

So in short: don't use ruby2.4 :}

Update to Selenium 3 fixes tests on Ruby 2.4.

Change 336825 abandoned by Zfilipin:
WIP Selenium tests broken on Ruby 2.4

Reason:
Already fixed in https://gerrit.wikimedia.org/r/#/c/336824/

https://gerrit.wikimedia.org/r/336825

Change 336824 had a related patch set uploaded (by Zfilipin):
Upgrade to Selenium 3

https://gerrit.wikimedia.org/r/336824

Change 336824 merged by jenkins-bot:
Upgrade to Selenium 3

https://gerrit.wikimedia.org/r/336824