Transient failure in qa/specs/features/browser_ui/3_create/web_ide/add_file_template_spec.rb
https://gitlab.com/gitlab-org/quality/staging/-/jobs/176833945
1) Create Web IDE file templates user adds Dockerfile via file template Python
Failure/Error: page.create_new_file_from_template template[:file_name], template[:name]
Selenium::WebDriver::Error::UnknownError:
unknown error: Element <div class="dropdown mr-2 qa-file-template-dropdown">...</div> is not clickable at point (747, 156). Other element would receive the click: <div class="col-sm-10">...</div>
(Session info: headless chrome=73.0.3683.75)
(Driver info: chromedriver=2.46.628388 (4a34a70827ac54148e092aafb70504c4ea7ae926),platform=Linux 4.19.23-coreos-r1 x86_64)
# /usr/local/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/remote/response.rb:69:in `assert_ok'
# /usr/local/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/remote/response.rb:32:in `initialize'
# /usr/local/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/remote/http/common.rb:84:in `new'
# /usr/local/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/remote/http/common.rb:84:in `create_response'
# /usr/local/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/remote/http/default.rb:104:in `request'
# /usr/local/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/remote/http/common.rb:62:in `call'
# /usr/local/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/remote/bridge.rb:166:in `execute'
# /usr/local/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/remote/oss/bridge.rb:584:in `execute'
# /usr/local/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/remote/oss/bridge.rb:326:in `click_element'
# /usr/local/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/element.rb:72:in `click'
# /usr/local/bundle/gems/capybara-2.16.1/lib/capybara/selenium/node.rb:102:in `click'
# /usr/local/bundle/gems/capybara-2.16.1/lib/capybara/node/element.rb:143:in `block in click'
# /usr/local/bundle/gems/capybara-2.16.1/lib/capybara/node/base.rb:85:in `synchronize'
# /usr/local/bundle/gems/capybara-2.16.1/lib/capybara/node/element.rb:143:in `click'
# ./qa/page/base.rb:97:in `click_element'
# ./qa/support/page/logging.rb:62:in `click_element'
# ./qa/page/project/web_ide/edit.rb:55:in `block (2 levels) in create_new_file_from_template'
# ./qa/page/base.rb:134:in `block in within_element'
# /usr/local/bundle/gems/capybara-2.16.1/lib/capybara/session.rb:343:in `within'
# ./qa/page/base.rb:133:in `within_element'
# ./qa/support/page/logging.rb:130:in `within_element'
# ./qa/page/project/web_ide/edit.rb:54:in `block in create_new_file_from_template'
# ./qa/page/base.rb:23:in `block in wait'
# ./qa/support/waiter.rb:13:in `wait'
# ./qa/page/base.rb:22:in `wait'
# ./qa/support/page/logging.rb:17:in `wait'
# ./qa/page/project/web_ide/edit.rb:53:in `create_new_file_from_template'
# ./qa/specs/features/browser_ui/3_create/web_ide/add_file_template_spec.rb:70:in `block (5 levels) in <module:QA>'
# ./qa/scenario/actable.rb:14:in `perform'
# ./qa/specs/features/browser_ui/3_create/web_ide/add_file_template_spec.rb:69:in `block (4 levels) in <module:QA>'
This looks like a problem we've had before with animated elements. The dialog shown in the screenshot slides a bit as it appears. The problem could be that the test clicks the filename in the dialog before it finishes moving, and that results in the test behaving as if the click worked, but the UI doesn't register it.
We need to wait for the dialog to stop moving before clicking.
It would be ideal if we had a way to wait for all animations to complete before clicking any elements. Maybe more dynamic validation like https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/25704
Edited by Mark Lapierre