Как отстаивать один из двух селекторов с капибарой + минитест - PullRequest
0 голосов
/ 23 октября 2018

У меня в настоящее время есть def, который делает это ниже, но я чувствую, что это неэффективно, и мог бы быть другой способ сделать это.Я знаю, что Rspec имеет функцию or (), чтобы помочь ему, но, похоже, у капибары этого нет.

def assert_either_selector(selector_1, selector_2)
  if has_selector?(selector_1, wait: false)
    assert_selector(selector_1)
  elsif has_selector?(selector_2, wait: false)
    assert_selector(selector_2)
  else
    flunk("Failed to match either selector \nExpected to find either: \n\t#{selector_1} or #{selector_2}")
  end
end

1 Ответ

0 голосов
/ 23 октября 2018

Capybara поддерживает or, но только при использовании сопоставителей RSpec (expect(page).to have_selector(selector_1).or(have_selector(selector_2))), так как minitest не поддерживает одновременную оценку or.Если предположить, что selector_1 и selector_2 являются селекторами CSS, то самое простое решение здесь - использовать запятую CSS и выполнить

assert_selector("#{selector_1}, #{selector_2}")

, которая проверит наличие элемента, соответствующего любому из двух селекторов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...