Closed Bug 1750302 Opened 3 years ago Closed 3 years ago

Intermittent /webdriver/tests/add_cookie/add.py | test_no_browsing_context - setup error: webdriver.error.NoSuchElementException: no such element (404): Unable to locate element: #sub-frame

Categories

(Remote Protocol :: Marionette, defect, P5)

defect

Tracking

(firefox-esr91 unaffected, firefox96 unaffected, firefox97 fixed, firefox98 fixed)

RESOLVED FIXED
98 Branch
Tracking Status
firefox-esr91 --- unaffected
firefox96 --- unaffected
firefox97 --- fixed
firefox98 --- fixed

People

(Reporter: intermittent-bug-filer, Assigned: whimboo)

References

(Regression)

Details

(Keywords: intermittent-failure, regression)

Filed by: mlaza [at] mozilla.com
Parsed log: https://treeherder.mozilla.org/logviewer?job_id=364184339&repo=autoland
Full log: https://firefox-ci-tc.services.mozilla.com/api/queue/v1/task/Z3aUMjPSRTeGUCEuEYKrkQ/runs/0/artifacts/public/logs/live_backing.log


[task 2022-01-14T22:10:38.161Z] 22:10:38     INFO - TEST-PASS | /webdriver/tests/add_cookie/add.py | test_no_top_browsing_context 
[task 2022-01-14T22:10:38.161Z] 22:10:38     INFO - TEST-UNEXPECTED-ERROR | /webdriver/tests/add_cookie/add.py | test_no_browsing_context - setup error: webdriver.error.NoSuchElementException: no such element (404): Unable to locate element: #sub-frame
[task 2022-01-14T22:10:38.161Z] 22:10:38     INFO - session = <Session c80869e6-188c-4aba-9992-99359109122f>
[task 2022-01-14T22:10:38.161Z] 22:10:38     INFO - url = <function url.<locals>.url at 0x000001B8A4945550>
[task 2022-01-14T22:10:38.161Z] 22:10:38     INFO - 
[task 2022-01-14T22:10:38.161Z] 22:10:38     INFO -     @pytest.fixture
[task 2022-01-14T22:10:38.161Z] 22:10:38     INFO -     def closed_frame(session, url):
[task 2022-01-14T22:10:38.161Z] 22:10:38     INFO -         """Create a frame and remove it after switching to it.
[task 2022-01-14T22:10:38.161Z] 22:10:38     INFO -     
[task 2022-01-14T22:10:38.161Z] 22:10:38     INFO -         The removed frame will be kept selected, which allows to test for invalid
[task 2022-01-14T22:10:38.161Z] 22:10:38     INFO -         browsing context references.
[task 2022-01-14T22:10:38.161Z] 22:10:38     INFO -         """
[task 2022-01-14T22:10:38.161Z] 22:10:38     INFO -         original_handle = session.window_handle
[task 2022-01-14T22:10:38.161Z] 22:10:38     INFO -         new_handle = session.new_window()
[task 2022-01-14T22:10:38.161Z] 22:10:38     INFO -     
[task 2022-01-14T22:10:38.161Z] 22:10:38     INFO -         session.window_handle = new_handle
[task 2022-01-14T22:10:38.161Z] 22:10:38     INFO -     
[task 2022-01-14T22:10:38.161Z] 22:10:38     INFO -         session.url = url("/webdriver/tests/support/html/frames.html")
[task 2022-01-14T22:10:38.162Z] 22:10:38     INFO -     
[task 2022-01-14T22:10:38.162Z] 22:10:38     INFO - >       subframe = session.find.css("#sub-frame", all=False)
[task 2022-01-14T22:10:38.162Z] 22:10:38     INFO - 
[task 2022-01-14T22:10:38.162Z] 22:10:38     INFO - new_handle = '7a2ab8ce-541e-4d0e-9e95-a0fd915fcfce'
[task 2022-01-14T22:10:38.162Z] 22:10:38     INFO - original_handle = 'bb915629-d031-47dc-b28c-df3574923be6'
[task 2022-01-14T22:10:38.162Z] 22:10:38     INFO - session    = <Session c80869e6-188c-4aba-9992-99359109122f>
[task 2022-01-14T22:10:38.162Z] 22:10:38     INFO - url        = <function url.<locals>.url at 0x000001B8A4945550>
[task 2022-01-14T22:10:38.162Z] 22:10:38     INFO - 
[task 2022-01-14T22:10:38.162Z] 22:10:38     INFO - tests\web-platform\tests\webdriver\tests\support\fixtures_http.py:42: 
[task 2022-01-14T22:10:38.162Z] 22:10:38     INFO - _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
[task 2022-01-14T22:10:38.162Z] 22:10:38     INFO - tests\web-platform\tests\tools\webdriver\webdriver\client.py:20: in inner
[task 2022-01-14T22:10:38.162Z] 22:10:38     INFO -     return func(self, *args, **kwargs)
[task 2022-01-14T22:10:38.162Z] 22:10:38     INFO -         args       = ('#sub-frame',)
[task 2022-01-14T22:10:38.162Z] 22:10:38     INFO -         func       = <function Find.css at 0x000001B8A48A4550>
[task 2022-01-14T22:10:38.163Z] 22:10:38     INFO -         kwargs     = {'all': False}
[task 2022-01-14T22:10:38.163Z] 22:10:38     INFO -         self       = <webdriver.client.Find object at 0x000001B8A4926190>
[task 2022-01-14T22:10:38.163Z] 22:10:38     INFO -         session    = <Session c80869e6-188c-4aba-9992-99359109122f>
[task 2022-01-14T22:10:38.163Z] 22:10:38     INFO - tests\web-platform\tests\tools\webdriver\webdriver\client.py:436: in css
[task 2022-01-14T22:10:38.163Z] 22:10:38     INFO -     elements = self._find_element("css selector", element_selector, all)
[task 2022-01-14T22:10:38.163Z] 22:10:38     INFO -         all        = False
[task 2022-01-14T22:10:38.163Z] 22:10:38     INFO -         element_selector = '#sub-frame'
[task 2022-01-14T22:10:38.163Z] 22:10:38     INFO -         self       = <webdriver.client.Find object at 0x000001B8A4926190>
[task 2022-01-14T22:10:38.163Z] 22:10:38     INFO - tests\web-platform\tests\tools\webdriver\webdriver\client.py:443: in _find_element
[task 2022-01-14T22:10:38.163Z] 22:10:38     INFO -     return self.session.send_session_command("POST", route, body)
[task 2022-01-14T22:10:38.163Z] 22:10:38     INFO -         all        = False
[task 2022-01-14T22:10:38.163Z] 22:10:38     INFO -         body       = {'using': 'css selector', 'value': '#sub-frame'}
[task 2022-01-14T22:10:38.163Z] 22:10:38     INFO -         route      = 'element'
[task 2022-01-14T22:10:38.163Z] 22:10:38     INFO -         selector   = '#sub-frame'
[task 2022-01-14T22:10:38.163Z] 22:10:38     INFO -         self       = <webdriver.client.Find object at 0x000001B8A4926190>
[task 2022-01-14T22:10:38.164Z] 22:10:38     INFO -         strategy   = 'css selector'
[task 2022-01-14T22:10:38.164Z] 22:10:38     INFO - tests\web-platform\tests\tools\webdriver\webdriver\client.py:659: in send_session_command
[task 2022-01-14T22:10:38.164Z] 22:10:38     INFO -     return self.send_command(method, url, body, timeout)
[task 2022-01-14T22:10:38.164Z] 22:10:38     INFO -         body       = {'using': 'css selector', 'value': '#sub-frame'}
[task 2022-01-14T22:10:38.164Z] 22:10:38     INFO -         method     = 'POST'
[task 2022-01-14T22:10:38.164Z] 22:10:38     INFO -         self       = <Session c80869e6-188c-4aba-9992-99359109122f>
[task 2022-01-14T22:10:38.164Z] 22:10:38     INFO -         timeout    = None
[task 2022-01-14T22:10:38.164Z] 22:10:38     INFO -         uri        = 'element'
[task 2022-01-14T22:10:38.164Z] 22:10:38     INFO -         url        = 'session/c80869e6-188c-4aba-9992-99359109122f/element'
[task 2022-01-14T22:10:38.164Z] 22:10:38     INFO - _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
[task 2022-01-14T22:10:38.164Z] 22:10:38     INFO - 
[task 2022-01-14T22:10:38.164Z] 22:10:38     INFO - self = <Session c80869e6-188c-4aba-9992-99359109122f>, method = 'POST'
[task 2022-01-14T22:10:38.164Z] 22:10:38     INFO - url = 'session/c80869e6-188c-4aba-9992-99359109122f/element'
[task 2022-01-14T22:10:38.164Z] 22:10:38     INFO - body = {'using': 'css selector', 'value': '#sub-frame'}, timeout = None
[task 2022-01-14T22:10:38.164Z] 22:10:38     INFO - 
[task 2022-01-14T22:10:38.164Z] 22:10:38     INFO -     def send_command(self, method, url, body=None, timeout=None):
[task 2022-01-14T22:10:38.164Z] 22:10:38     INFO -         """
[task 2022-01-14T22:10:38.164Z] 22:10:38     INFO -         Send a command to the remote end and validate its success.
[task 2022-01-14T22:10:38.164Z] 22:10:38     INFO -     
[task 2022-01-14T22:10:38.165Z] 22:10:38     INFO -         :param method: HTTP method to use in request.
[task 2022-01-14T22:10:38.165Z] 22:10:38     INFO -         :param uri: "Command part" of the HTTP request URL,
[task 2022-01-14T22:10:38.165Z] 22:10:38     INFO -             e.g. `window/rect`.
[task 2022-01-14T22:10:38.165Z] 22:10:38     INFO -         :param body: Optional body of the HTTP request.
[task 2022-01-14T22:10:38.165Z] 22:10:38     INFO -     
[task 2022-01-14T22:10:38.165Z] 22:10:38     INFO -         :return: `None` if the HTTP response body was empty, otherwise
[task 2022-01-14T22:10:38.165Z] 22:10:38     INFO -             the `value` field returned after parsing the response
[task 2022-01-14T22:10:38.165Z] 22:10:38     INFO -             body as JSON.
[task 2022-01-14T22:10:38.165Z] 22:10:38     INFO -     
[task 2022-01-14T22:10:38.165Z] 22:10:38     INFO -         :raises error.WebDriverException: If the remote end returns
[task 2022-01-14T22:10:38.165Z] 22:10:38     INFO -             an error.
[task 2022-01-14T22:10:38.165Z] 22:10:38     INFO -         :raises ValueError: If the response body does not contain a
[task 2022-01-14T22:10:38.165Z] 22:10:38     INFO -             `value` key.
[task 2022-01-14T22:10:38.165Z] 22:10:38     INFO -         """
[task 2022-01-14T22:10:38.165Z] 22:10:38     INFO -     
[task 2022-01-14T22:10:38.166Z] 22:10:38     INFO -         response = self.transport.send(
[task 2022-01-14T22:10:38.166Z] 22:10:38     INFO -             method, url, body,
[task 2022-01-14T22:10:38.166Z] 22:10:38     INFO -             encoder=protocol.Encoder, decoder=protocol.Decoder,
[task 2022-01-14T22:10:38.166Z] 22:10:38     INFO -             session=self, timeout=timeout)
[task 2022-01-14T22:10:38.166Z] 22:10:38     INFO -     
[task 2022-01-14T22:10:38.166Z] 22:10:38     INFO -         if response.status != 200:
[task 2022-01-14T22:10:38.166Z] 22:10:38     INFO -             err = error.from_response(response)
[task 2022-01-14T22:10:38.166Z] 22:10:38     INFO -     
[task 2022-01-14T22:10:38.166Z] 22:10:38     INFO -             if isinstance(err, error.InvalidSessionIdException):
[task 2022-01-14T22:10:38.166Z] 22:10:38     INFO -                 # The driver could have already been deleted the session.
[task 2022-01-14T22:10:38.166Z] 22:10:38     INFO -                 self.session_id = None
[task 2022-01-14T22:10:38.166Z] 22:10:38     INFO -     
[task 2022-01-14T22:10:38.166Z] 22:10:38     INFO - >           raise err
[task 2022-01-14T22:10:38.166Z] 22:10:38     INFO - E           webdriver.error.NoSuchElementException: no such element (404): Unable to locate element: #sub-frame
[task 2022-01-14T22:10:38.166Z] 22:10:38     INFO - E           
[task 2022-01-14T22:10:38.166Z] 22:10:38     INFO - E           Remote-end stacktrace:
[task 2022-01-14T22:10:38.167Z] 22:10:38     INFO - E           
[task 2022-01-14T22:10:38.167Z] 22:10:38     INFO - E           WebDriverError@chrome://remote/content/shared/webdriver/Errors.jsm:183:5
[task 2022-01-14T22:10:38.167Z] 22:10:38     INFO - E           NoSuchElementError@chrome://remote/content/shared/webdriver/Errors.jsm:395:5
[task 2022-01-14T22:10:38.167Z] 22:10:38     INFO - E           element.find/</<@chrome://remote/content/marionette/element.js:300:16
[task 2022-01-14T22:10:38.167Z] 22:10:38     INFO - 
[task 2022-01-14T22:10:38.167Z] 22:10:38     INFO - body       = {'using': 'css selector', 'value': '#sub-frame'}
[task 2022-01-14T22:10:38.167Z] 22:10:38     INFO - err        = <NoSuchElementException http_status=404>
[task 2022-01-14T22:10:38.167Z] 22:10:38     INFO - method     = 'POST'
[task 2022-01-14T22:10:38.167Z] 22:10:38     INFO - response   = <Response status=404 error=<NoSuchElementException http_status=404>>
[task 2022-01-14T22:10:38.167Z] 22:10:38     INFO - self       = <Session c80869e6-188c-4aba-9992-99359109122f>
[task 2022-01-14T22:10:38.167Z] 22:10:38     INFO - timeout    = None
[task 2022-01-14T22:10:38.167Z] 22:10:38     INFO - url        = 'session/c80869e6-188c-4aba-9992-99359109122f/element'
[task 2022-01-14T22:10:38.167Z] 22:10:38     INFO - 
[task 2022-01-14T22:10:38.167Z] 22:10:38     INFO - tests\web-platform\tests\tools\webdriver\webdriver\client.py:623: NoSuchElementException
[task 2022-01-14T22:10:38.176Z] 22:10:38     INFO - ....................
[task 2022-01-14T22:10:38.176Z] 22:10:38     INFO - TEST-OK | /webdriver/tests/add_cookie/add.py | took 4199ms
[task 2022-01-14T22:10:48.173Z] 22:10:48  WARNING - Forcibly terminating runner process
[task 2022-01-14T22:10:48.176Z] 22:10:48     INFO - Starting runner
[task 2022-01-14T22:10:49.503Z] 22:10:49     INFO - PID 8416 | 1642198249008	geckodriver	INFO	Listening on 127.0.0.1:50366
[task 2022-01-14T22:10:49.505Z] 22:10:49     INFO - WebDriver HTTP server listening at http://127.0.0.1:50366/
[task 2022-01-14T22:10:49.506Z] 22:10:49     INFO - TEST-START | /webdriver/tests/add_cookie/user_prompts.py

Problem with the navigation without properly waiting for the initial about:blank being loaded. Will be fixed with bug 1747359.

https://treeherder.mozilla.org/logviewer?job_id=364184339&repo=autoland&lineNumber=1597-1601

[task 2022-01-14T22:10:36.475Z] 22:10:36     INFO - PID 4420 | 1642198236438	Marionette	DEBUG	0 -> [0,67,"WebDriver:Navigate",{"url":"http://web-platform.test:8000/webdriver/tests/support/html/frames.html"}]
[task 2022-01-14T22:10:36.477Z] 22:10:36     INFO - PID 4420 | 1642198236444	Marionette	TRACE	Remoteness change detected. Set new top-level browsing context to 48
[task 2022-01-14T22:10:36.478Z] 22:10:36     INFO - PID 4420 | 1642198236445	Marionette	TRACE	[48] Received event DOMContentLoaded for about:blank
[task 2022-01-14T22:10:36.479Z] 22:10:36     INFO - PID 4420 | 1642198236446	Marionette	TRACE	[48] Received event pageshow for about:blank
[task 2022-01-14T22:10:36.480Z] 22:10:36     INFO - PID 4420 | 1642198236448	Marionette	DEBUG	0 <- [1,67,null,{"value":null}]
Depends on: 1747359
Assignee: nobody → hskupin
Status: NEW → RESOLVED
Closed: 3 years ago
Keywords: regression
Regressed by: 1739369
Resolution: --- → FIXED
Target Milestone: --- → 98 Branch

Set release status flags based on info from the regressing bug 1739369

Has Regression Range: --- → yes
Moving bug to Remote Protocol::Marionette component per bug 1815831.
Component: geckodriver → Marionette
Product: Testing → Remote Protocol
You need to log in before you can comment on or make changes to this bug.