diff options
author | Grzegorz Bizon <grzesiek.bizon@gmail.com> | 2017-12-07 13:40:25 +0100 |
---|---|---|
committer | Grzegorz Bizon <grzesiek.bizon@gmail.com> | 2017-12-07 13:40:25 +0100 |
commit | fc00d739fcf86b5dbd22cf0eb3c57072ea5b439f (patch) | |
tree | 4b4b52c67dd8a04ed9e725c105d65c263a9d7115 /qa/qa/page/base.rb | |
parent | 4c37cf684d75297a88db2dd1c286a68fd8aec701 (diff) | |
parent | fe62860e05ca6e3ef7125fe92fdf52cd6f7b63df (diff) | |
download | gitlab-ce-fc00d739fcf86b5dbd22cf0eb3c57072ea5b439f.tar.gz |
Merge branch 'master' into qa/gb/selenium-handle-domain-sessions
* master: (694 commits)
Conflicts:
qa/qa/page/base.rb
qa/qa/page/main/entry.rb
Diffstat (limited to 'qa/qa/page/base.rb')
-rw-r--r-- | qa/qa/page/base.rb | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/qa/qa/page/base.rb b/qa/qa/page/base.rb index 69f14386223..1d4a5c54969 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 @@ -9,8 +11,6 @@ module QA end def wait(css = '.application', time: 60) - # This resolves cold boot / background tasks problems - # Time.now.tap do |start| while Time.now - start < time break if page.has_css?(css, wait: 5) @@ -25,6 +25,21 @@ module QA def self.address raise NotImplementedError 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 |