summaryrefslogtreecommitdiff
path: root/qa/qa/page/base.rb
diff options
context:
space:
mode:
authorRémy Coutable <remy@rymai.me>2017-11-22 16:38:10 +0000
committerRémy Coutable <remy@rymai.me>2017-11-22 16:38:10 +0000
commit743fd67f73875dac071287ef8bb91a2392359ba3 (patch)
tree95db5fc4f4e73cf74d79b036c1e4d81a46f583c8 /qa/qa/page/base.rb
parentc4de6ec496fd9556ac6cdacbeeb008c833ce9bf1 (diff)
parentdabd858812c6d342d095c69ef85aeba7af894121 (diff)
downloadgitlab-ce-743fd67f73875dac071287ef8bb91a2392359ba3.tar.gz
Merge branch 'qa/gb/backport-geo-integration-tests-commons' into 'master'
Backport QA code that belongs to CE from EE Geo Closes #40344 See merge request gitlab-org/gitlab-ce!15536
Diffstat (limited to 'qa/qa/page/base.rb')
-rw-r--r--qa/qa/page/base.rb17
1 files changed, 17 insertions, 0 deletions
diff --git a/qa/qa/page/base.rb b/qa/qa/page/base.rb
index bdddfb877c5..f9a93ef051e 100644
--- a/qa/qa/page/base.rb
+++ b/qa/qa/page/base.rb
@@ -1,3 +1,5 @@
+require 'capybara/dsl'
+
module QA
module Page
class Base
@@ -7,6 +9,21 @@ module QA
def refresh
visit current_url
end
+
+ def scroll_to(selector, text: nil)
+ page.execute_script <<~JS
+ var elements = Array.from(document.querySelectorAll('#{selector}'));
+ var text = '#{text}';
+
+ if (text.length > 0) {
+ elements.find(e => e.textContent === text).scrollIntoView();
+ } else {
+ elements[0].scrollIntoView();
+ }
+ JS
+
+ page.within(selector) { yield } if block_given?
+ end
end
end
end