mozilla / geckodriver

WebDriver for Firefox
https://firefox-source-docs.mozilla.org/testing/geckodriver/
Mozilla Public License 2.0
7.03k stars 1.51k forks source link

getElementText for WebComponents using slots fail since Firefox 109 #2097

Closed lacell75 closed 7 months ago

lacell75 commented 1 year ago

System

Testcase

What happened? Since firefox 109, getElementText with deep selector on shadow root returns an empty string. According to the driver logs, WebDriver:GetElementText returns "" but if we look the html , the text in the element is present but in a sub element (span) : [0-0] New task

I don't understand why this behavior is now different from version 109 of firefox. I need help.

What is your expected behavior? Return all text of shadow like on firefox 108 or chrome

Refer the webdriver ISSUE: #9876 You can reproduce with this repo : https://github.com/lacell75/cucumber-boilerplate/tree/issue9876 . Launch this feature : https://github.com/lacell75/cucumber-boilerplate/blob/issue9876/issue9876.feature

or with webdriver.IO API

await browser.url('https://taskmob.demo.vaadin.com');
  await $('>>>#newTaskButton').waitForDisplayed();
  console.log(await $('>>>#newTaskButton').isDisplayed()); // return true
  console.log(await $('>>>#newTaskButton').getText()); // return '' but expected "New task"
  await expect($('>>>#newTaskButton')).toHaveTextContaining('New task'); // Failed on firefox 109/110 , OK on chrome 110 and firefox 108

Stacktrace

Execution of 1 workers started at 2023-03-02T16:42:58.603Z

2023-03-02T16:42:58.650Z DEBUG @wdio/utils:initialiseServices: initialise service "intercept" as NPM package
2023-03-02T16:42:58.659Z DEBUG @wdio/utils:initialiseServices: initialise service "image-comparison" as NPM package
2023-03-02T16:42:58.784Z INFO @wdio/cli:launcher: Run onPrepare hook
2023-03-02T16:42:58.787Z INFO @wdio/cli:launcher: Run onWorkerStart hook
2023-03-02T16:42:58.789Z INFO @wdio/local-runner: Start worker 0-0 with arg: run,wdio.LOCAL.conf.ts,--spec,C:\2-gitlab\end-to-end-tests-wdio\features\test.feature
2023-03-02T16:42:58.802Z DEBUG @wdio/local-runner: Send command run to worker with cid "0-0"
[0-0] 2023-03-02T16:43:00.952Z INFO @wdio/local-runner: Run worker command: run
[0-0] 2023-03-02T16:43:02.157Z DEBUG @wdio/runner: init remote session
[0-0] 2023-03-02T16:43:02.164Z DEBUG @wdio/utils:initialiseServices: initialise service "intercept" as NPM package
[0-0] 2023-03-02T16:43:02.171Z DEBUG @wdio/utils:initialiseServices: initialise service "image-comparison" as NPM package
[0-0] RUNNING in firefox - file:///C:/2-gitlab/end-to-end-tests-wdio/features/test.feature
[0-0] 2023-03-02T16:43:03.195Z DEBUG @wdio/runner: init remote session
[0-0] 2023-03-02T16:43:03.198Z INFO webdriver: Initiate new session using the WebDriver protocol
[0-0] 2023-03-02T16:43:03.362Z INFO webdriver: [POST] http://127.0.0.1:4444/wd/hub/session
[0-0] 2023-03-02T16:43:03.362Z INFO webdriver: DATA {
[0-0]   capabilities: {
[0-0]     alwaysMatch: {
[0-0]       browserName: 'firefox',
[0-0]       acceptInsecureCerts: true,
[0-0]       'moz:firefoxOptions': [Object]
[0-0]     },
[0-0]     firstMatch: [ {} ]
[0-0]   },
[0-0]   desiredCapabilities: {
[0-0]     browserName: 'firefox',
[0-0]     acceptInsecureCerts: true,
[0-0]     'moz:firefoxOptions': { prefs: [Object], args: [Array] }
[0-0]   }
[0-0] }
[0-0] 2023-03-02T16:43:06.151Z INFO wdio-image-comparison-service: Adding commands to global browser
[0-0] 2023-03-02T16:43:06.152Z DEBUG @wdio/utils:shim: Finished to run "before" hook in 0ms
[firefox 110.0.1 WINDOWS #0-0] ------------------------------------------------------------------
[firefox 110.0.1 WINDOWS #0-0] Suite started :
[firefox 110.0.1 WINDOWS #0-0]   » \features\test.feature
[firefox 110.0.1 WINDOWS #0-0] Content-production.03-Quality Issues.20-Adding/deleting/reading comments INQA-262/263
[0-0] 2023-03-02T16:43:13.949Z DEBUG @wdio/utils:shim: Finished to run "beforeFeature" hook in 1ms

[firefox 110.0.1 WINDOWS #0-0] Teardown if preference don't delete for
[0-0] 2023-03-02T16:43:13.975Z DEBUG @wdio/utils:shim: Finished to run "beforeScenario" hook in 0ms
[firefox 110.0.1 WINDOWS #0-0] Hook executed :
[0-0] 2023-03-02T16:43:13.983Z INFO webdriver: COMMAND navigateTo("https://taskmob.demo.vaadin.com/")
[0-0] 2023-03-02T16:43:13.983Z INFO webdriver: [POST] http://127.0.0.1:4444/wd/hub/session/f9b4e1f8-8449-44cf-b52d-9e813e8b19de/url
[0-0] 2023-03-02T16:43:13.983Z INFO webdriver: DATA { url: 'https://taskmob.demo.vaadin.com/' }
[0-0] 2023-03-02T16:43:15.647Z INFO webdriver: RESULT null
[0-0] 2023-03-02T16:43:15.649Z INFO webdriver: COMMAND $(">>>#newTaskButton")
[0-0] 2023-03-02T16:43:15.651Z INFO webdriver: COMMAND executeScript(<fn>, <object>)
[0-0] 2023-03-02T16:43:15.651Z INFO webdriver: [POST] http://127.0.0.1:4444/wd/hub/session/f9b4e1f8-8449-44cf-b52d-9e813e8b19de/execute/sync
[0-0] 2023-03-02T16:43:15.651Z INFO webdriver: DATA {
[0-0]   script: 'querySelectorAllDeep(...) [11573 bytes]',
[0-0]   args: [ false, '#newTaskButton', undefined ]
[0-0] }
[0-0] 2023-03-02T16:43:15.783Z INFO webdriver: RESULT null
[0-0] 2023-03-02T16:43:15.796Z INFO webdriver: RESULT WebdriverIO.Element<undefined>
[0-0] 2023-03-02T16:43:15.798Z INFO webdriver: COMMAND $(">>>#newTaskButton")
[0-0] 2023-03-02T16:43:15.798Z INFO webdriver: COMMAND executeScript(<fn>, <object>)
[0-0] 2023-03-02T16:43:15.799Z INFO webdriver: [POST] http://127.0.0.1:4444/wd/hub/session/f9b4e1f8-8449-44cf-b52d-9e813e8b19de/execute/sync
[0-0] 2023-03-02T16:43:15.799Z INFO webdriver: DATA {
[0-0]   script: 'querySelectorAllDeep(...) [11573 bytes]',
[0-0]   args: [ false, '#newTaskButton', undefined ]
[0-0] }
[0-0] 2023-03-02T16:43:15.835Z INFO webdriver: RESULT null
[0-0] 2023-03-02T16:43:15.839Z INFO webdriver: RESULT WebdriverIO.Element<undefined>
[0-0] 2023-03-02T16:43:16.613Z INFO webdriver: COMMAND $(">>>#newTaskButton")
[0-0] 2023-03-02T16:43:16.614Z INFO webdriver: COMMAND executeScript(<fn>, <object>)
[0-0] 2023-03-02T16:43:16.614Z INFO webdriver: [POST] http://127.0.0.1:4444/wd/hub/session/f9b4e1f8-8449-44cf-b52d-9e813e8b19de/execute/sync
[0-0] 2023-03-02T16:43:16.614Z INFO webdriver: DATA {
[0-0]   script: 'querySelectorAllDeep(...) [11573 bytes]',
[0-0]   args: [ false, '#newTaskButton', undefined ]
[0-0] }
[0-0] 2023-03-02T16:43:16.646Z INFO webdriver: RESULT {
[0-0]   'element-6066-11e4-a52e-4f735466cecf': '6566610c-620a-4f43-bb1a-a0b9571e5d3d'
[0-0] }
[0-0] 2023-03-02T16:43:16.649Z INFO webdriver: RESULT WebdriverIO.Element<6566610c-620a-4f43-bb1a-a0b9571e5d3d>
[0-0] 2023-03-02T16:43:16.650Z INFO webdriver: COMMAND isElementDisplayed("6566610c-620a-4f43-bb1a-a0b9571e5d3d")
[0-0] 2023-03-02T16:43:16.650Z INFO webdriver: [GET] http://127.0.0.1:4444/wd/hub/session/f9b4e1f8-8449-44cf-b52d-9e813e8b19de/element/6566610c-620a-4f43-bb1a-a0b9571e5d3d/displayed
[0-0] 2023-03-02T16:43:16.697Z INFO webdriver: RESULT true
[0-0] 2023-03-02T16:43:16.697Z INFO webdriver: COMMAND $(">>>#newTaskButton")
[0-0] 2023-03-02T16:43:16.697Z INFO webdriver: COMMAND executeScript(<fn>, <object>)
[0-0] 2023-03-02T16:43:16.698Z INFO webdriver: [POST] http://127.0.0.1:4444/wd/hub/session/f9b4e1f8-8449-44cf-b52d-9e813e8b19de/execute/sync
[0-0] 2023-03-02T16:43:16.698Z INFO webdriver: DATA {
[0-0]   script: 'querySelectorAllDeep(...) [11573 bytes]',
[0-0]   args: [ false, '#newTaskButton', undefined ]
[0-0] }
[0-0] 2023-03-02T16:43:16.738Z INFO webdriver: RESULT {
[0-0]   'element-6066-11e4-a52e-4f735466cecf': '6566610c-620a-4f43-bb1a-a0b9571e5d3d'
[0-0] }
[0-0] 2023-03-02T16:43:16.743Z INFO webdriver: RESULT WebdriverIO.Element<6566610c-620a-4f43-bb1a-a0b9571e5d3d>
[0-0] 2023-03-02T16:43:16.743Z INFO webdriver: COMMAND isElementDisplayed("6566610c-620a-4f43-bb1a-a0b9571e5d3d")
[0-0] 2023-03-02T16:43:16.744Z INFO webdriver: [GET] http://127.0.0.1:4444/wd/hub/session/f9b4e1f8-8449-44cf-b52d-9e813e8b19de/element/6566610c-620a-4f43-bb1a-a0b9571e5d3d/displayed
[0-0] 2023-03-02T16:43:16.758Z INFO webdriver: RESULT true
[0-0] true
[0-0] 2023-03-02T16:43:16.759Z INFO webdriver: COMMAND $(">>>#newTaskButton")
[0-0] 2023-03-02T16:43:16.760Z INFO webdriver: COMMAND executeScript(<fn>, <object>)
[0-0] 2023-03-02T16:43:16.761Z INFO webdriver: [POST] http://127.0.0.1:4444/wd/hub/session/f9b4e1f8-8449-44cf-b52d-9e813e8b19de/execute/sync
[0-0] 2023-03-02T16:43:16.761Z INFO webdriver: DATA {
[0-0]   script: 'querySelectorAllDeep(...) [11573 bytes]',
[0-0]   args: [ false, '#newTaskButton', undefined ]
[0-0] }
[0-0] 2023-03-02T16:43:16.782Z INFO webdriver: RESULT {
[0-0]   'element-6066-11e4-a52e-4f735466cecf': '6566610c-620a-4f43-bb1a-a0b9571e5d3d'
[0-0] }
[0-0] 2023-03-02T16:43:16.789Z INFO webdriver: RESULT WebdriverIO.Element<6566610c-620a-4f43-bb1a-a0b9571e5d3d>
[0-0] 2023-03-02T16:43:16.790Z INFO webdriver: COMMAND getElementText("6566610c-620a-4f43-bb1a-a0b9571e5d3d")
[0-0] 2023-03-02T16:43:16.791Z INFO webdriver: [GET] http://127.0.0.1:4444/wd/hub/session/f9b4e1f8-8449-44cf-b52d-9e813e8b19de/element/6566610c-620a-4f43-bb1a-a0b9571e5d3d/text
[0-0] 2023-03-02T16:43:16.819Z INFO webdriver: RESULT 
[0-0] 
[0-0] 2023-03-02T16:43:16.819Z INFO webdriver: COMMAND $(">>>#newTaskButton")
[0-0] 2023-03-02T16:43:16.822Z INFO webdriver: COMMAND executeScript(<fn>, <object>)
[0-0] 2023-03-02T16:43:16.824Z INFO webdriver: [POST] http://127.0.0.1:4444/wd/hub/session/f9b4e1f8-8449-44cf-b52d-9e813e8b19de/execute/sync
[0-0] 2023-03-02T16:43:16.824Z INFO webdriver: DATA {
[0-0]   script: 'querySelectorAllDeep(...) [11573 bytes]',
[0-0]   args: [ false, '#newTaskButton', undefined ]
[0-0] }
[0-0] 2023-03-02T16:43:16.850Z INFO webdriver: RESULT {
[0-0]   'element-6066-11e4-a52e-4f735466cecf': '6566610c-620a-4f43-bb1a-a0b9571e5d3d'
[0-0] }
[0-0] 2023-03-02T16:43:16.852Z INFO webdriver: RESULT WebdriverIO.Element<6566610c-620a-4f43-bb1a-a0b9571e5d3d>
[0-0] 2023-03-02T16:43:16.853Z INFO webdriver: COMMAND getElementText("6566610c-620a-4f43-bb1a-a0b9571e5d3d")
[0-0] 2023-03-02T16:43:16.854Z INFO webdriver: [GET] http://127.0.0.1:4444/wd/hub/session/f9b4e1f8-8449-44cf-b52d-9e813e8b19de/element/6566610c-620a-4f43-bb1a-a0b9571e5d3d/text
[0-0] 2023-03-02T16:43:16.875Z INFO webdriver: RESULT 
[0-0] 2023-03-02T16:43:17.885Z INFO webdriver: COMMAND getElementText("6566610c-620a-4f43-bb1a-a0b9571e5d3d")
[0-0] 2023-03-02T16:43:17.886Z INFO webdriver: [GET] http://127.0.0.1:4444/wd/hub/session/f9b4e1f8-8449-44cf-b52d-9e813e8b19de/element/6566610c-620a-4f43-bb1a-a0b9571e5d3d/text
[0-0] 2023-03-02T16:43:17.911Z INFO webdriver: RESULT 
[0-0] 2023-03-02T16:43:18.917Z INFO webdriver: COMMAND getElementText("6566610c-620a-4f43-bb1a-a0b9571e5d3d")
[0-0] 2023-03-02T16:43:18.918Z INFO webdriver: [GET] http://127.0.0.1:4444/wd/hub/session/f9b4e1f8-8449-44cf-b52d-9e813e8b19de/element/6566610c-620a-4f43-bb1a-a0b9571e5d3d/text
[0-0] 2023-03-02T16:43:18.934Z INFO webdriver: RESULT 
[0-0] 2023-03-02T16:43:19.948Z INFO webdriver: COMMAND getElementText("6566610c-620a-4f43-bb1a-a0b9571e5d3d")
[0-0] 2023-03-02T16:43:19.948Z INFO webdriver: [GET] http://127.0.0.1:4444/wd/hub/session/f9b4e1f8-8449-44cf-b52d-9e813e8b19de/element/6566610c-620a-4f43-bb1a-a0b9571e5d3d/text
[0-0] 2023-03-02T16:43:19.965Z INFO webdriver: RESULT 
[0-0] 2023-03-02T16:43:20.976Z INFO webdriver: COMMAND getElementText("6566610c-620a-4f43-bb1a-a0b9571e5d3d")
[0-0] 2023-03-02T16:43:20.977Z INFO webdriver: [GET] http://127.0.0.1:4444/wd/hub/session/f9b4e1f8-8449-44cf-b52d-9e813e8b19de/element/6566610c-620a-4f43-bb1a-a0b9571e5d3d/text
[0-0] 2023-03-02T16:43:21.004Z INFO webdriver: RESULT 
[0-0] 2023-03-02T16:43:22.019Z INFO webdriver: COMMAND getElementText("6566610c-620a-4f43-bb1a-a0b9571e5d3d")
[0-0] 2023-03-02T16:43:22.020Z INFO webdriver: [GET] http://127.0.0.1:4444/wd/hub/session/f9b4e1f8-8449-44cf-b52d-9e813e8b19de/element/6566610c-620a-4f43-bb1a-a0b9571e5d3d/text
[0-0] 2023-03-02T16:43:22.042Z INFO webdriver: RESULT 
[0-0] 2023-03-02T16:43:23.051Z INFO webdriver: COMMAND getElementText("6566610c-620a-4f43-bb1a-a0b9571e5d3d")
[0-0] 2023-03-02T16:43:23.051Z INFO webdriver: [GET] http://127.0.0.1:4444/wd/hub/session/f9b4e1f8-8449-44cf-b52d-9e813e8b19de/element/6566610c-620a-4f43-bb1a-a0b9571e5d3d/text
[0-0] 2023-03-02T16:43:23.063Z INFO webdriver: RESULT
[0-0] 2023-03-02T16:43:24.069Z INFO webdriver: COMMAND getElementText("6566610c-620a-4f43-bb1a-a0b9571e5d3d")
[0-0] 2023-03-02T16:43:24.070Z INFO webdriver: [GET] http://127.0.0.1:4444/wd/hub/session/f9b4e1f8-8449-44cf-b52d-9e813e8b19de/element/6566610c-620a-4f43-bb1a-a0b9571e5d3d/text
[0-0] 2023-03-02T16:43:24.080Z INFO webdriver: RESULT
[0-0] 2023-03-02T16:43:25.083Z INFO webdriver: COMMAND getElementText("6566610c-620a-4f43-bb1a-a0b9571e5d3d")
[0-0] 2023-03-02T16:43:25.084Z INFO webdriver: [GET] http://127.0.0.1:4444/wd/hub/session/f9b4e1f8-8449-44cf-b52d-9e813e8b19de/element/6566610c-620a-4f43-bb1a-a0b9571e5d3d/text
[0-0] 2023-03-02T16:43:25.101Z INFO webdriver: RESULT 
[0-0] 2023-03-02T16:43:26.108Z INFO webdriver: COMMAND getElementText("6566610c-620a-4f43-bb1a-a0b9571e5d3d")
[0-0] 2023-03-02T16:43:26.109Z INFO webdriver: [GET] http://127.0.0.1:4444/wd/hub/session/f9b4e1f8-8449-44cf-b52d-9e813e8b19de/element/6566610c-620a-4f43-bb1a-a0b9571e5d3d/text
[0-0] 2023-03-02T16:43:26.126Z INFO webdriver: RESULT 
[0-0] 2023-03-02T16:43:27.129Z INFO webdriver: COMMAND getElementText("6566610c-620a-4f43-bb1a-a0b9571e5d3d")
[0-0] 2023-03-02T16:43:27.129Z INFO webdriver: [GET] http://127.0.0.1:4444/wd/hub/session/f9b4e1f8-8449-44cf-b52d-9e813e8b19de/element/6566610c-620a-4f43-bb1a-a0b9571e5d3d/text
[0-0] 2023-03-02T16:43:27.160Z INFO webdriver: RESULT 
[0-0] 2023-03-02T16:43:28.170Z INFO webdriver: COMMAND getElementText("6566610c-620a-4f43-bb1a-a0b9571e5d3d")
[0-0] 2023-03-02T16:43:28.171Z INFO webdriver: [GET] http://127.0.0.1:4444/wd/hub/session/f9b4e1f8-8449-44cf-b52d-9e813e8b19de/element/6566610c-620a-4f43-bb1a-a0b9571e5d3d/text
[0-0] 2023-03-02T16:43:28.196Z INFO webdriver: RESULT 
[0-0] 2023-03-02T16:43:29.201Z INFO webdriver: COMMAND getElementText("6566610c-620a-4f43-bb1a-a0b9571e5d3d")
[0-0] 2023-03-02T16:43:29.203Z INFO webdriver: [GET] http://127.0.0.1:4444/wd/hub/session/f9b4e1f8-8449-44cf-b52d-9e813e8b19de/element/6566610c-620a-4f43-bb1a-a0b9571e5d3d/text
[0-0] 2023-03-02T16:43:29.212Z INFO webdriver: RESULT
[0-0] 2023-03-02T16:43:30.216Z INFO webdriver: COMMAND getElementText("6566610c-620a-4f43-bb1a-a0b9571e5d3d")
[0-0] 2023-03-02T16:43:30.216Z INFO webdriver: [GET] http://127.0.0.1:4444/wd/hub/session/f9b4e1f8-8449-44cf-b52d-9e813e8b19de/element/6566610c-620a-4f43-bb1a-a0b9571e5d3d/text
[0-0] 2023-03-02T16:43:30.226Z INFO webdriver: RESULT
[0-0] 2023-03-02T16:43:31.227Z INFO webdriver: COMMAND getElementText("6566610c-620a-4f43-bb1a-a0b9571e5d3d")
[0-0] 2023-03-02T16:43:31.227Z INFO webdriver: [GET] http://127.0.0.1:4444/wd/hub/session/f9b4e1f8-8449-44cf-b52d-9e813e8b19de/element/6566610c-620a-4f43-bb1a-a0b9571e5d3d/text
[0-0] 2023-03-02T16:43:31.237Z INFO webdriver: RESULT
[0-0] 2023-03-02T16:43:32.247Z INFO webdriver: COMMAND getElementText("6566610c-620a-4f43-bb1a-a0b9571e5d3d")
[0-0] 2023-03-02T16:43:32.248Z INFO webdriver: [GET] http://127.0.0.1:4444/wd/hub/session/f9b4e1f8-8449-44cf-b52d-9e813e8b19de/element/6566610c-620a-4f43-bb1a-a0b9571e5d3d/text
[0-0] 2023-03-02T16:43:32.260Z INFO webdriver: RESULT
[0-0] 2023-03-02T16:43:33.263Z INFO webdriver: COMMAND getElementText("6566610c-620a-4f43-bb1a-a0b9571e5d3d")
[0-0] 2023-03-02T16:43:33.266Z INFO webdriver: [GET] http://127.0.0.1:4444/wd/hub/session/f9b4e1f8-8449-44cf-b52d-9e813e8b19de/element/6566610c-620a-4f43-bb1a-a0b9571e5d3d/text
[0-0] 2023-03-02T16:43:33.294Z INFO webdriver: RESULT 
[0-0] 2023-03-02T16:43:34.308Z INFO webdriver: COMMAND getElementText("6566610c-620a-4f43-bb1a-a0b9571e5d3d")
[0-0] 2023-03-02T16:43:34.309Z INFO webdriver: [GET] http://127.0.0.1:4444/wd/hub/session/f9b4e1f8-8449-44cf-b52d-9e813e8b19de/element/6566610c-620a-4f43-bb1a-a0b9571e5d3d/text
[0-0] 2023-03-02T16:43:34.315Z INFO webdriver: RESULT
[0-0] 2023-03-02T16:43:35.323Z INFO webdriver: COMMAND getElementText("6566610c-620a-4f43-bb1a-a0b9571e5d3d")
[0-0] 2023-03-02T16:43:35.323Z INFO webdriver: [GET] http://127.0.0.1:4444/wd/hub/session/f9b4e1f8-8449-44cf-b52d-9e813e8b19de/element/6566610c-620a-4f43-bb1a-a0b9571e5d3d/text
[0-0] 2023-03-02T16:43:35.330Z INFO webdriver: RESULT
[0-0] 2023-03-02T16:43:36.338Z INFO webdriver: COMMAND getElementText("6566610c-620a-4f43-bb1a-a0b9571e5d3d")
[0-0] 2023-03-02T16:43:36.338Z INFO webdriver: [GET] http://127.0.0.1:4444/wd/hub/session/f9b4e1f8-8449-44cf-b52d-9e813e8b19de/element/6566610c-620a-4f43-bb1a-a0b9571e5d3d/text
[0-0] 2023-03-02T16:43:36.346Z INFO webdriver: RESULT
[0-0] 2023-03-02T16:43:37.353Z INFO webdriver: COMMAND getElementText("6566610c-620a-4f43-bb1a-a0b9571e5d3d")
[0-0] 2023-03-02T16:43:37.354Z INFO webdriver: [GET] http://127.0.0.1:4444/wd/hub/session/f9b4e1f8-8449-44cf-b52d-9e813e8b19de/element/6566610c-620a-4f43-bb1a-a0b9571e5d3d/text
[0-0] 2023-03-02T16:43:37.363Z INFO webdriver: RESULT
[0-0] 2023-03-02T16:43:38.366Z INFO webdriver: COMMAND getElementText("6566610c-620a-4f43-bb1a-a0b9571e5d3d")
[0-0] 2023-03-02T16:43:38.367Z INFO webdriver: [GET] http://127.0.0.1:4444/wd/hub/session/f9b4e1f8-8449-44cf-b52d-9e813e8b19de/element/6566610c-620a-4f43-bb1a-a0b9571e5d3d/text
[0-0] 2023-03-02T16:43:38.374Z INFO webdriver: RESULT
[0-0] 2023-03-02T16:43:39.377Z INFO webdriver: COMMAND getElementText("6566610c-620a-4f43-bb1a-a0b9571e5d3d")
[0-0] 2023-03-02T16:43:39.378Z INFO webdriver: [GET] http://127.0.0.1:4444/wd/hub/session/f9b4e1f8-8449-44cf-b52d-9e813e8b19de/element/6566610c-620a-4f43-bb1a-a0b9571e5d3d/text
[0-0] 2023-03-02T16:43:39.389Z INFO webdriver: RESULT
[0-0] 2023-03-02T16:43:40.404Z INFO webdriver: COMMAND getElementText("6566610c-620a-4f43-bb1a-a0b9571e5d3d")
[0-0] 2023-03-02T16:43:40.405Z INFO webdriver: [GET] http://127.0.0.1:4444/wd/hub/session/f9b4e1f8-8449-44cf-b52d-9e813e8b19de/element/6566610c-620a-4f43-bb1a-a0b9571e5d3d/text
[0-0] 2023-03-02T16:43:40.427Z INFO webdriver: RESULT 
[0-0] 2023-03-02T16:43:41.435Z INFO webdriver: COMMAND getElementText("6566610c-620a-4f43-bb1a-a0b9571e5d3d")
[0-0] 2023-03-02T16:43:41.436Z INFO webdriver: [GET] http://127.0.0.1:4444/wd/hub/session/f9b4e1f8-8449-44cf-b52d-9e813e8b19de/element/6566610c-620a-4f43-bb1a-a0b9571e5d3d/text
[0-0] 2023-03-02T16:43:41.459Z INFO webdriver: RESULT 
[0-0] 2023-03-02T16:43:42.469Z INFO webdriver: COMMAND getElementText("6566610c-620a-4f43-bb1a-a0b9571e5d3d")
[0-0] 2023-03-02T16:43:42.470Z INFO webdriver: [GET] http://127.0.0.1:4444/wd/hub/session/f9b4e1f8-8449-44cf-b52d-9e813e8b19de/element/6566610c-620a-4f43-bb1a-a0b9571e5d3d/text
[0-0] 2023-03-02T16:43:42.491Z INFO webdriver: RESULT 
[0-0] 2023-03-02T16:43:43.495Z INFO webdriver: COMMAND getElementText("6566610c-620a-4f43-bb1a-a0b9571e5d3d")
[0-0] 2023-03-02T16:43:43.496Z INFO webdriver: [GET] http://127.0.0.1:4444/wd/hub/session/f9b4e1f8-8449-44cf-b52d-9e813e8b19de/element/6566610c-620a-4f43-bb1a-a0b9571e5d3d/text
[0-0] 2023-03-02T16:43:43.506Z INFO webdriver: RESULT
[0-0] 2023-03-02T16:43:44.507Z INFO webdriver: COMMAND getElementText("6566610c-620a-4f43-bb1a-a0b9571e5d3d")
[0-0] 2023-03-02T16:43:44.507Z INFO webdriver: [GET] http://127.0.0.1:4444/wd/hub/session/f9b4e1f8-8449-44cf-b52d-9e813e8b19de/element/6566610c-620a-4f43-bb1a-a0b9571e5d3d/text
[0-0] 2023-03-02T16:43:44.515Z INFO webdriver: RESULT
[0-0] 2023-03-02T16:43:45.522Z INFO webdriver: COMMAND getElementText("6566610c-620a-4f43-bb1a-a0b9571e5d3d")
[0-0] 2023-03-02T16:43:45.523Z INFO webdriver: [GET] http://127.0.0.1:4444/wd/hub/session/f9b4e1f8-8449-44cf-b52d-9e813e8b19de/element/6566610c-620a-4f43-bb1a-a0b9571e5d3d/text
[0-0] 2023-03-02T16:43:45.529Z INFO webdriver: RESULT
[0-0] 2023-03-02T16:43:46.536Z INFO webdriver: COMMAND getElementText("6566610c-620a-4f43-bb1a-a0b9571e5d3d")
[0-0] 2023-03-02T16:43:46.537Z INFO webdriver: [GET] http://127.0.0.1:4444/wd/hub/session/f9b4e1f8-8449-44cf-b52d-9e813e8b19de/element/6566610c-620a-4f43-bb1a-a0b9571e5d3d/text
[0-0] 2023-03-02T16:43:46.545Z INFO webdriver: RESULT
[0-0] 2023-03-02T16:43:47.556Z INFO webdriver: COMMAND getUrl()
[0-0] 2023-03-02T16:43:47.557Z INFO webdriver: [GET] http://127.0.0.1:4444/wd/hub/session/f9b4e1f8-8449-44cf-b52d-9e813e8b19de/url
[0-0] 2023-03-02T16:43:47.561Z INFO webdriver: RESULT https://taskmob.demo.vaadin.com/projects/elOOLoXT
[0-0] 2023-03-02T16:43:47.561Z DEBUG @wdio/utils:shim: Finished to run "afterStep" hook in 5ms
[0-0] Error: Expect $(`>>>#newTaskButton`) to have text containing

Expected: "New task"
Received: ""
    at World.<anonymous> (file:///C:/2-gitlab/end-to-end-tests-wdio/src/steps/given.js:98:40)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
[0-0] Save a screenshot
[0-0] 2023-03-02T16:43:47.564Z INFO webdriver: COMMAND takeScreenshot()
[0-0] 2023-03-02T16:43:47.564Z INFO webdriver: [GET] http://127.0.0.1:4444/wd/hub/session/f9b4e1f8-8449-44cf-b52d-9e813e8b19de/screenshot
Code of Conduct
 I agree to follow this project's Code of Conduct
Is there an existing issue for this?
 I have searched the existing issues
@[lacell75](https://github.com/lacell75) lacell75 added [Bug 🐛](https://github.com/webdriverio/webdriverio/labels/Bug%20%F0%9F%90%9B) [Needs Triaging ⏳](https://github.com/webdriverio/webdriverio/labels/Needs%20Triaging%20%E2%8F%B3) No one has looked into the issue yetlabels [3 weeks ago](https://github.com/webdriverio/webdriverio/issues/9876#event-8651530314)
@christian-bromann
Member
[christian-bromann](https://github.com/christian-bromann) commented [3 weeks ago](https://github.com/webdriverio/webdriverio/issues/9876#issuecomment-1452229307)
Running the script is passing for me successfully:

2023-03-02T17:14:27.385Z INFO chromedriver: Initiate Chromedriver Launcher (v8.1.1)
2023-03-02T17:14:27.386Z INFO @wdio/cli:launcher: Run onPrepare hook
2023-03-02T17:14:27.387Z INFO chromedriver: Start Chromedriver (/private/tmp/9877/node_modules/chromedriver/lib/chromedriver/chromedriver) with args --port=9515 --url-base=/
2023-03-02T17:14:27.398Z INFO chromedriver: Starting ChromeDriver 110.0.5481.77 (65ed616c6e8ee3fe0ad64fe83796c020644d42af-refs/branch-heads/5481@{#839}) on port 9515
2023-03-02T17:14:27.398Z INFO chromedriver: Only local connections are allowed.
2023-03-02T17:14:27.398Z INFO chromedriver: Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe.
2023-03-02T17:14:27.399Z INFO chromedriver: ChromeDriver was started successfully.
2023-03-02T17:14:27.498Z INFO @wdio/cli:launcher: Run onWorkerStart hook
2023-03-02T17:14:27.498Z INFO @wdio/local-runner: Start worker 0-0 with arg: run,./wdio.conf.js
[0-0] 2023-03-02T17:14:27.768Z INFO @wdio/local-runner: Run worker command: run
[0-0] RUNNING in firefox - file:///test/specs/example.e2e.js
[0-0] 2023-03-02T17:14:27.826Z INFO devtools:puppeteer: Initiate new session using the DevTools protocol
[0-0] 2023-03-02T17:14:27.828Z INFO devtools: Launch /Applications/Firefox Nightly.app/Contents/MacOS/firefox-bin with config: {"product":"firefox","executablePath":"/Applications/Firefox Nightly.app/Contents/MacOS/firefox-bin","headless":false,"defaultViewport":{"width":1200,"height":900},"prefs":{"dom.ipc.processCount":16,"browser.download.folderList":2,"browser.download.useDownloadDir":true,"browser.helperApps.neverAsk.saveToDisk":"application/vnd.ms-excel;application/vnd.openxmlformats-officedocument.spreadsheetml.sheet","nglayout.initialpaint.delay":0},"args":["--width=1980","--height=1080"]}
[0-0] 2023-03-02T17:14:28.740Z INFO devtools: COMMAND navigateTo("https://taskmob.demo.vaadin.com/")
[0-0] 2023-03-02T17:14:30.021Z INFO devtools: RESULT null
[0-0] 2023-03-02T17:14:30.075Z INFO devtools: COMMAND findElement("shadow", "#newTaskButton")
[0-0] 2023-03-02T17:14:30.090Z INFO devtools: RESULT Error: Element with selector "shadow/#newTaskButton" not found
[0-0]     at DevToolsDriver.findElement (file:///private/tmp/9877/node_modules/devtools/build/utils.js:98:16)
[0-0]     at processTicksAndRejections (node:internal/process/task_queues:96:5)
[0-0]     at async Browser.wrappedCommand (file:///private/tmp/9877/node_modules/devtools/build/devtoolsdriver.js:127:26)
[0-0]     at async Browser.wrapCommandFn (file:///private/tmp/9877/node_modules/@wdio/utils/build/shim.js:72:29)
[0-0]     at async Browser.$ (file:///private/tmp/9877/node_modules/webdriverio/build/commands/browser/$.js:66:17)
[0-0]     at async Browser.wrapCommandFn (file:///private/tmp/9877/node_modules/@wdio/utils/build/shim.js:72:29)
[0-0]     at async Context.<anonymous> (file:///private/tmp/9877/test/specs/example.e2e.js:7:9)
[0-0] 2023-03-02T17:14:30.094Z INFO devtools: COMMAND findElement("shadow", "#newTaskButton")
[0-0] 2023-03-02T17:14:30.095Z INFO devtools: RESULT Error: Element with selector "shadow/#newTaskButton" not found
[0-0]     at DevToolsDriver.findElement (file:///private/tmp/9877/node_modules/devtools/build/utils.js:98:16)
[0-0]     at processTicksAndRejections (node:internal/process/task_queues:96:5)
[0-0]     at async Browser.wrappedCommand (file:///private/tmp/9877/node_modules/devtools/build/devtoolsdriver.js:127:26)
[0-0]     at async Browser.wrapCommandFn (file:///private/tmp/9877/node_modules/@wdio/utils/build/shim.js:72:29)
[0-0]     at async Browser.$ (file:///private/tmp/9877/node_modules/webdriverio/build/commands/browser/$.js:66:17)
[0-0]     at async Browser.wrapCommandFn (file:///private/tmp/9877/node_modules/@wdio/utils/build/shim.js:72:29)
[0-0]     at async hasElementId (file:///private/tmp/9877/node_modules/webdriverio/build/utils/index.js:401:30)
[0-0]     at async Element.isDisplayed (file:///private/tmp/9877/node_modules/webdriverio/build/commands/element/isDisplayed.js:55:10)
[0-0]     at async Element.wrapCommandFn (file:///private/tmp/9877/node_modules/@wdio/utils/build/shim.js:72:29)
[0-0]     at async Element.elementErrorHandlerCallbackFn (file:///private/tmp/9877/node_modules/webdriverio/build/middlewares.js:18:32)
[0-0] 2023-03-02T17:14:30.595Z INFO devtools: COMMAND findElement("shadow", "#newTaskButton")
[0-0] 2023-03-02T17:14:30.597Z INFO devtools: RESULT { 'element-6066-11e4-a52e-4f735466cecf': 'ELEMENT-1' }
[0-0] 2023-03-02T17:14:30.600Z INFO devtools: COMMAND executeScript(<fn>, <object>)
[0-0] 2023-03-02T17:14:30.604Z INFO devtools: RESULT true
[0-0] 2023-03-02T17:14:30.605Z INFO devtools: COMMAND findElement("shadow", "#newTaskButton")
[0-0] 2023-03-02T17:14:30.607Z INFO devtools: RESULT { 'element-6066-11e4-a52e-4f735466cecf': 'ELEMENT-2' }
[0-0] 2023-03-02T17:14:30.609Z INFO devtools: COMMAND executeScript(<fn>, <object>)
[0-0] 2023-03-02T17:14:30.612Z INFO devtools: RESULT true
[0-0] true
[0-0] 2023-03-02T17:14:30.613Z INFO devtools: COMMAND findElement("shadow", "#newTaskButton")
[0-0] 2023-03-02T17:14:30.614Z INFO devtools: RESULT { 'element-6066-11e4-a52e-4f735466cecf': 'ELEMENT-3' }
[0-0] 2023-03-02T17:14:30.616Z INFO devtools: COMMAND getElementText("ELEMENT-3")
[0-0] 2023-03-02T17:14:30.618Z INFO devtools: RESULT New task
[0-0] New task
[0-0] 2023-03-02T17:14:30.621Z INFO devtools: COMMAND findElement("shadow", "#newTaskButton")
[0-0] 2023-03-02T17:14:30.622Z INFO devtools: RESULT { 'element-6066-11e4-a52e-4f735466cecf': 'ELEMENT-4' }
[0-0] 2023-03-02T17:14:30.624Z INFO devtools: COMMAND getElementText("ELEMENT-4")
[0-0] 2023-03-02T17:14:30.627Z INFO devtools: RESULT New task
[0-0] 2023-03-02T17:14:30.630Z INFO devtools: COMMAND deleteSession()
[0-0] 2023-03-02T17:14:30.652Z INFO devtools: RESULT null

Trace-level log

wdio-geckodriver.log

whimboo commented 1 year ago

Please note that a deep selector is not part of the WebDriver specification but special to webdriver.io. As such I'm not sure what specifically this command is doing to retrieve requested elements.

Do you have a chance to create a minimized HTML page which reproduces the problem for you? When I check the changes for Marionette in Firefox 109 nothing actually is visible to me which could have caused a different behavior.

whimboo commented 1 year ago

I actually was able to finally reproduce myself. Thanks a lot for the report! I filed an internal issue that can be found at: https://bugzilla.mozilla.org/show_bug.cgi?id=1824664.

As it looks like it is more a Firefox issue and not particular to our WebDriver implementation.

lacell75 commented 1 year ago

Great news!!

muhqu commented 9 months ago

@whimboo I've run into the same issue and reported it here: https://github.com/webdriverio/webdriverio/issues/11360

I've run into the issue while testing a web application that is built using adobe spectrum web components.

whimboo commented 8 months ago

@muhqu would you mind commenting on the before mentioned bug so that we know that others are affected as well? I might have to take another look at this. Thanks.

muhqu commented 8 months ago

Sure just done that .

bwajtr commented 7 months ago

I would like to note that we encountered this problem while testing Vaadin webcomponents too. Actually, the problem is reproducible even with a very basic webcomponent that uses slots. I've prepared the following demonstration project, where you can reproduce it quite easily: https://github.com/bwajtr/selenium-firefox-gettext-webcomponents

whimboo commented 7 months ago

Yes, we are aware and this issue was actually filed because Vaadin components have this problem. See the very first comment. But thanks a lot for the simplified testcase which demonstrates that this is an issue when using slot.

whimboo commented 7 months ago

@lacell75, @muhqu and @bwajtr would you be so kind helping us to test the fix that I have in place to fix this issue? I pushed test builds for verification and from our side it looks all fine. It would be great to also get some feedback from consumers of WebDriver.

Builds for all platforms can be found at: https://treeherder.mozilla.org/jobs?repo=try&revision=2822e80fcd2624eea0fbe203bc22a3af864dae10&searchStr=build

Just click the Ba link of your platform and select Artifacts and Debugging Tools in the below pane. There look out for target.tar.gz for Linux, or target.zip for Windows, or target.dmg for MacOS. Just unzip/mount the file and you can directly run Firefox without installation.

Thanks!

PS: Note that the Selenium atoms have bugs around getting the element text from closed shadow root. If you make use of that it will no longer work in Firefox similar to other browsers, and I'm going to help fixing it over on https://github.com/SeleniumHQ/selenium/issues/13132.

lacell75 commented 7 months ago

@lacell75, @muhqu and @bwajtr would you be so kind helping us to test the fix that I have in place to fix this issue? I pushed test builds for verification and from our side it looks all fine. It would be great to also get some feedback from consumers of WebDriver.

Builds for all platforms can be found at: https://treeherder.mozilla.org/jobs?repo=try&revision=2822e80fcd2624eea0fbe203bc22a3af864dae10&searchStr=build

Just click the Ba link of your platform and select Artifacts and Debugging Tools in the below pane. There look out for target.tar.gz for Linux, or target.zip for Windows, or target.dmg for MacOS. Just unzip/mount the file and you can directly run Firefox without installation.

Thanks!

PS: Note that the Selenium atoms have bugs around getting the element text from closed shadow root. If you make use of that it will no longer work in Firefox similar to other browsers, and I'm going to help fixing it over on SeleniumHQ/selenium#13132.

Sure. I will test the fix on Monday. Thanks a lot for the job!

lacell75 commented 7 months ago

@whimboo well done. This version works correctly, the test is passed now.

whimboo commented 7 months ago

Good to know and thanks for the verification! I just triggered the landing of the patch and a fix will be in tomorrow's Nightly build of Firefox 122.

bwajtr commented 7 months ago

@whimboo I can also confirm that with the provided nightly build of Firefox 122 my tests are now passing. Thanks a lot!