Page MenuHomePhabricator

selenium-daily-beta-CirrusSearch fails with `Request failed due to invalid argument: invalid argument: unrecognized capability: chromeOptions`
Closed, ResolvedPublic

Description

Example failure (from selenium-daily-beta-CirrusSearch/1033/console).

+ npm run-script selenium-daily

> cirrussearch@0.0.0 selenium-daily
> npm run @selenium-test

> cirrussearch@0.0.0 @selenium-test
> wdio tests/selenium/wdio.conf.js

Execution of 1 spec files started at 2021-06-10T02:17:47.209Z

[0-0] RUNNING in chrome - /tests/selenium/specs/smoke_test.js
[0-0] 2021-06-10T02:17:48.113Z ERROR webdriver: Request failed due to invalid argument: invalid argument: unrecognized capability: chromeOptions
...

Caused by 698631 that forgot to update chromeOptions to goog:chromeOptions in wdio.conf.js.

Event Timeline

Restricted Application added a subscriber: Aklapper. · View Herald Transcript

Hmm, i wonder why this still passes is my test environments without setting special goog options. This has run from at least two different machines using chromedriver already.

Yes, it works on my machine too. Strange.

Trying to reproduce this on my machine. First, it fails with wdio: not found. (I'm using Fresh.)

nobody@docker-desktop:/CirrusSearch$ npm run selenium-daily

> cirrussearch@0.0.0 selenium-daily /CirrusSearch
> npm run @selenium-test


> cirrussearch@0.0.0 @selenium-test /CirrusSearch
> wdio tests/selenium/wdio.conf.js

sh: 1: wdio: not found
npm ERR! code ELIFECYCLE
npm ERR! syscall spawn
npm ERR! file sh
npm ERR! errno ENOENT
npm ERR! cirrussearch@0.0.0 @selenium-test: `wdio tests/selenium/wdio.conf.js`
npm ERR! spawn ENOENT
npm ERR! 
npm ERR! Failed at the cirrussearch@0.0.0 @selenium-test script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /cache/_logs/2021-06-10T15_23_05_069Z-debug.log
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! cirrussearch@0.0.0 selenium-daily: `npm run @selenium-test`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the cirrussearch@0.0.0 selenium-daily script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /cache/_logs/2021-06-10T15_23_05_100Z-debug.log

Change 699234 had a related patch set uploaded (by Zfilipin; author: Zfilipin):

[mediawiki/extensions/CirrusSearch@master] WIP selenium: Fix selenium-daily-beta-CirrusSearch

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

I've installed missing @wdio/cli package in 699234. Then I've noticed that 698631 changed lockfileVersion in package-lock.json from 1 to 2. That might be causing some trouble.

This is my machine (Fresh).

nobody@docker-desktop:/CirrusSearch$ node -v
v10.15.2

nobody@docker-desktop:/CirrusSearch$ npm -v
6.14.5

Looks like Jenkins is on different versions of node and npm.

+ node --version
v12.21.0

+ npm --version
7.5.2

The test runner we are using is also on the higher versions. This change (698631) was prompted by CI switching from node 10 to node 12, the previous package.json wasn't compatible with node 12 so we needed to update everything. With all the mw extensions moving to node 12 for CI, should fresh update to node 12 as well?

$ node --version
v12.22.1
$ npm --version
7.16.0

I was able to reproduce the failure. Looks like @wdio/cli (699234) is not needed after all, if I use node/npm versions that CI uses.

~/Documents/gerrit/mediawiki/core/extensions/CirrusSearch$ node -v
v12.21.0

~/Documents/gerrit/mediawiki/core/extensions/CirrusSearch$ npm -v
7.5.2

~/Documents/gerrit/mediawiki/core/extensions/CirrusSearch$ npm ci

~/Documents/gerrit/mediawiki/core/extensions/CirrusSearch$ chromedriver --url-base=wd/hub --port=4444 &

~/Documents/gerrit/mediawiki/core/extensions/CirrusSearch$ npm run selenium-daily

> cirrussearch@0.0.0 selenium-daily
> npm run @selenium-test

> cirrussearch@0.0.0 @selenium-test
> wdio tests/selenium/wdio.conf.js

Execution of 1 spec files started at 2021-06-11T15:30:42.086Z

[0-0] RUNNING in chrome - /tests/selenium/specs/smoke_test.js
[0-0] 2021-06-11T15:30:42.631Z ERROR webdriver: Request failed due to invalid argument: invalid argument: unrecognized capability: chromeOptions
    at getErrorFromResponseBody (/Users/z/Documents/gerrit/mediawiki/core/extensions/CirrusSearch/node_modules/webdriver/build/utils.js:121:10)
    at Request._callback (/Users/z/Documents/gerrit/mediawiki/core/extensions/CirrusSearch/node_modules/webdriver/build/request.js:121:64)
    at Request.self.callback (/Users/z/Documents/gerrit/mediawiki/core/extensions/CirrusSearch/node_modules/request/request.js:186:22)
    at Request.emit (events.js:314:20)
    at Request.EventEmitter.emit (domain.js:483:12)
    at Request.<anonymous> (/Users/z/Documents/gerrit/mediawiki/core/extensions/CirrusSearch/node_modules/request/request.js:1163:10)
    at Request.emit (events.js:314:20)
    at Request.EventEmitter.emit (domain.js:483:12)
    at IncomingMessage.<anonymous> (/Users/z/Documents/gerrit/mediawiki/core/extensions/CirrusSearch/node_modules/request/request.js:1085:12)
    at Object.onceWrapper (events.js:420:28)
[0-0] 2021-06-11T15:30:42.633Z ERROR webdriver: invalid argument: invalid argument: unrecognized capability: chromeOptions
    at getErrorFromResponseBody (/Users/z/Documents/gerrit/mediawiki/core/extensions/CirrusSearch/node_modules/webdriver/build/utils.js:121:10)
    at Request._callback (/Users/z/Documents/gerrit/mediawiki/core/extensions/CirrusSearch/node_modules/webdriver/build/request.js:121:64)
    at Request.self.callback (/Users/z/Documents/gerrit/mediawiki/core/extensions/CirrusSearch/node_modules/request/request.js:186:22)
    at Request.emit (events.js:314:20)
    at Request.EventEmitter.emit (domain.js:483:12)
    at Request.<anonymous> (/Users/z/Documents/gerrit/mediawiki/core/extensions/CirrusSearch/node_modules/request/request.js:1163:10)
    at Request.emit (events.js:314:20)
    at Request.EventEmitter.emit (domain.js:483:12)
    at IncomingMessage.<anonymous> (/Users/z/Documents/gerrit/mediawiki/core/extensions/CirrusSearch/node_modules/request/request.js:1085:12)
    at Object.onceWrapper (events.js:420:28)
2021-06-11T15:30:42.633Z ERROR @wdio/runner: Error: Failed to create session.
invalid argument: unrecognized capability: chromeOptions
    at startWebDriverSession (/Users/z/Documents/gerrit/mediawiki/core/extensions/CirrusSearch/node_modules/webdriver/build/utils.js:45:11)
    at processTicksAndRejections (internal/process/task_queues.js:97:5)
[0-0] Error: Failed to create session.
invalid argument: unrecognized capability: chromeOptions
[0-0] FAILED in chrome - /tests/selenium/specs/smoke_test.js

Spec Files:      0 passed, 1 failed, 1 total (100% completed) in 00:00:00 

npm ERR! code 1
npm ERR! path /Users/z/Documents/gerrit/mediawiki/core/extensions/CirrusSearch
npm ERR! command failed
npm ERR! command sh -c wdio tests/selenium/wdio.conf.js

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/z/.npm/_logs/2021-06-11T15_30_43_012Z-debug.log
npm ERR! code 1
npm ERR! path /Users/z/Documents/gerrit/mediawiki/core/extensions/CirrusSearch
npm ERR! command failed
npm ERR! command sh -c npm run @selenium-test

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/z/.npm/_logs/2021-06-11T15_30_43_059Z-debug.log

Change 699234 abandoned by Zfilipin:

[mediawiki/extensions/CirrusSearch@master] WIP selenium: Fix selenium-daily-beta-CirrusSearch

Reason:

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

Change 699442 had a related patch set uploaded (by Zfilipin; author: Zfilipin):

[mediawiki/extensions/CirrusSearch@master] selenium: Use 'goog:chromeOptions'

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

699442 fixes the problem on my machine. It should also fix failing selenium-daily-beta-CirrusSearch Jenkins job.

~/Documents/gerrit/mediawiki/core/extensions/CirrusSearch$ export MW_SERVER=https://en.wikipedia.beta.wmflabs.org

~/Documents/gerrit/mediawiki/core/extensions/CirrusSearch$ npm run selenium-daily                                

> cirrussearch@0.0.0 selenium-daily
> npm run @selenium-test

> cirrussearch@0.0.0 @selenium-test
> wdio tests/selenium/wdio.conf.js

Execution of 1 spec files started at 2021-06-11T15:37:35.691Z

[0-0] RUNNING in chrome - /tests/selenium/specs/smoke_test.js
[0-0] PASSED in chrome - /tests/selenium/specs/smoke_test.js

 "spec" Reporter:
------------------------------------------------------------------
[chrome 91.0.4472.101 mac os x #0-0] Spec: /Users/z/Documents/gerrit/mediawiki/core/extensions/CirrusSearch/tests/selenium/specs/smoke_test.js
[chrome 91.0.4472.101 mac os x #0-0] Running: chrome (v91.0.4472.101) on mac os x
[chrome 91.0.4472.101 mac os x #0-0] Session ID: 03fefe0ec6eba54c8c114352da29dcb2
[chrome 91.0.4472.101 mac os x #0-0]
[chrome 91.0.4472.101 mac os x #0-0] Smoke test for search
[chrome 91.0.4472.101 mac os x #0-0]    ✓ Search suggestions
[chrome 91.0.4472.101 mac os x #0-0]    ✓ Fill in search term and click search
[chrome 91.0.4472.101 mac os x #0-0]    ✓ Search with accent yields result page with accent
[chrome 91.0.4472.101 mac os x #0-0]
[chrome 91.0.4472.101 mac os x #0-0] 3 passing (10.1s)

 "junit" Reporter:
<?xml version="1.0" encoding="UTF-8"?>
<testsuites>
  <testsuite name="Smoke_test_for_search" timestamp="2021-06-11T17:37:36" time="10.031" tests="3" failures="0" errors="0" skipped="0">
    <properties>
      <property name="specId" value="0"/>
      <property name="suiteName" value="Smoke test for search"/>
      <property name="capabilities" value="chrome.91_0_4472_101.macosx"/>
      <property name="file" value="./tests/selenium/specs/smoke_test.js"/>
    </properties>
    <testcase classname="chrome.91_0_4472_101.macosx.Smoke_test_for_search" name="Search_suggestions" time="3.788"/>
    <testcase classname="chrome.91_0_4472_101.macosx.Smoke_test_for_search" name="Fill_in_search_term_and_click_search" time="2.8"/>
    <testcase classname="chrome.91_0_4472_101.macosx.Smoke_test_for_search" name="Search_with_accent_yields_result_page_with_accent" time="3.442"/>
  </testsuite>
</testsuites>

Spec Files:      1 passed, 1 total (100% completed) in 00:00:11 

~/Documents/gerrit/mediawiki/core/extensions/CirrusSearch$ git branch
* master
~/Documents/gerrit/mediawiki/core/extensions/CirrusSearch$ git checkout -b T284730
Switched to a new branch 'T284730'
~/Documents/gerrit/mediawiki/core/extensions/CirrusSearch$ git review
remote: 
remote: Processing changes: new: 1 (\)
remote: Processing changes: new: 1 (|)
remote: Processing changes: new: 1 (/)
remote: Processing changes: refs: 1, new: 1 (/)
remote: Processing changes: refs: 1, new: 1 (/)
remote: Processing changes: refs: 1, new: 1, done            
remote: 
remote: SUCCESS        
remote: 
remote:   https://gerrit.wikimedia.org/r/c/mediawiki/extensions/CirrusSearch/+/699442 selenium: Use 'goog:chromeOptions' [NEW]        
remote: 
To ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/CirrusSearch
 * [new branch]        HEAD -> refs/for/master%topic=T284730

Change 699442 merged by jenkins-bot:

[mediawiki/extensions/CirrusSearch@master] selenium: Use 'goog:chromeOptions'

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