Как я могу переключить Frame, используя Capybara и Ruby? - PullRequest
3 голосов
/ 27 сентября 2019

Я разрабатываю атоматический тест с использованием Capybara и Ruby.Мне нужно переключить фрейм для доступа к веб-элементу на странице отчета, но я не знаю, как мне это сделать.

HTML-код:

<iframe name="OF_jreport" id="OF_jreport" width="100%" height="100%" frameborder="0" border="0"></iframe>

Я пробую это:

def check_supplier_report()
            sleep 10

            @session.switch_to_frame("//*[@id=\"OF_jreport\"]")
            teste = @session.find("//*[@id=\"GTC_CODE\"]").text
            puts teste
end

Но в консоли возвращается следующая ошибка:

Вы должны предоставить элемент frame: parent или: top при вызове switch_to_frame (ArgumentError) ./features/helpers/commons.rb:158:in `check_supplier_report '

Может кто-нибудь мне помочь?Спасибо

1 Ответ

3 голосов
/ 27 сентября 2019

Судя по сообщению об ошибке, switch_to_frame хочет, чтобы элемент кадра был передан в качестве параметра.Я считаю, что вам нужно найти кадр, прежде чем вы сможете передать его в этот метод.

Итак, замените эту строку @session.switch_to_frame("//*[@id=\"OF_jreport\"]") на эти две строки:

# Find the frame
frame = @session.find("//*[@id=\"OF_jreport\"]")

# Switch to the frame
@session.switch_to_frame(frame)
...