From 88c5e0e10b6ade0326cd35e27794f859a1834fe4 Mon Sep 17 00:00:00 2001 From: Thorsten Eckel Date: Wed, 16 Jun 2021 10:20:06 +0200 Subject: [PATCH] Maintenance: Enable `allow_reload` for Capybara find methods to avoid Selenium::WebDriver::Error::StaleElementReferenceError exceptions. --- .../activate_reload_of_stale_elements.rb | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 spec/support/capybara/activate_reload_of_stale_elements.rb diff --git a/spec/support/capybara/activate_reload_of_stale_elements.rb b/spec/support/capybara/activate_reload_of_stale_elements.rb new file mode 100644 index 000000000..51be4e7ce --- /dev/null +++ b/spec/support/capybara/activate_reload_of_stale_elements.rb @@ -0,0 +1,16 @@ +# Copyright (C) 2012-2021 Zammad Foundation, http://zammad-foundation.org/ + +# This file overwrites `Capybara::Node::Finders#all` to set the default value +# of the `allow_reload` keyword argument to `true` (default: `false`) to enable +# automatic reload of stale elements and avoid +# `Selenium::WebDriver::Error::StaleElementReferenceError` exceptions. + +module ZammadActivateReloadOfStaleElements + + def all(*args, allow_reload: true, **options, &optional_filter_block) + super(*args, allow_reload: allow_reload, **options, &optional_filter_block) + end +end + +Capybara::Node::Base.include(ZammadActivateReloadOfStaleElements) +Capybara::Node::Simple.include(ZammadActivateReloadOfStaleElements)