diff options
Diffstat (limited to 'qa/qa/page/base.rb')
-rw-r--r-- | qa/qa/page/base.rb | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/qa/qa/page/base.rb b/qa/qa/page/base.rb index 389f4e0032e..d247a273637 100644 --- a/qa/qa/page/base.rb +++ b/qa/qa/page/base.rb @@ -78,8 +78,12 @@ module QA page.evaluate_script('xhr.status') == 200 end - def find_element(name, text: nil, wait: Capybara.default_max_wait_time) - find(element_selector_css(name), wait: wait, text: text) + def find_element(name, **kwargs) + find(element_selector_css(name), kwargs) + end + + def active_element?(name) + find_element(name, class: 'active') end def all_elements(name) @@ -132,6 +136,15 @@ module QA has_no_css?('.fa-spinner', wait: Capybara.default_max_wait_time) end + def wait_for_animated_element(name) + # It would be ideal if we could detect when the animation is complete + # but in some cases there's nothing we can easily access via capybara + # so instead we wait for the element, and then we wait a little longer + raise ElementNotFound, %Q(Couldn't find element named "#{name}") unless has_element?(name) + + sleep 1 + end + def within_element(name, text: nil) page.within(element_selector_css(name), text: text) do yield |