scinote-web/features/support/shared_methods.rb
2020-07-09 13:14:07 +02:00

43 lines
1.2 KiB
Ruby

# frozen_string_literal: true
### Notes
# Only CSS selector is working, Jquery is not working
# e.g.: buttons = all("a.btn:contains(#{text}),input.btn[value=#{text}]")
# Change wait time to 0, otherwise waiting default time (30s) to get empty array of elements
### Improvments
# Threads? When first is successful, kill others?
# NOT WOKRING: first(".btn:nth(#{position-1})", text: text)
# Wait time could be problem. Find&First is witing until first element appear, but all is waiting until max wait
# time, what is 30s by default. This is why override with 1 second.
def check_active_team(team)
expect(page).to have_selector '#team-switch button', text: team
end
def sci_click_on_button(text:, position: 1)
raise 'Position cannot be lower than 1' if position < 1
if position == 1
btn = first('.btn', text: text)
else
btn = all('.btn', text: text, wait: 1)[position-1]
end
btn.click
end
def sci_click_on_icon(icon_class:, position: 1, container: nil)
raise 'Position cannot be lower than 1' if position < 1
scope = container ? find(container) : page
if position == 1
icon = scope.first(".fas.#{icon_class}")
else
icon = scope.all(".fas.#{icon_class}")[position-1]
end
icon.click
end