mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2024-11-18 23:21:30 +08:00
42 lines
1.2 KiB
Ruby
42 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
|