Как я могу вернуться к текущему кадру в Ruby? - PullRequest
0 голосов
/ 14 октября 2019

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

Это мой код, когда я переключаю фрейм для доступа к странице отчета:

def check_report(report)
  frame = @session.find("//*[@id=\"OF_jreport\"]")
  @session.switch_to_frame(frame)
end

Чем я пытался это сделать:

 @session.switch_to.default_content()

Iполучил сообщение, спрашивающее, имел ли я в виду switch_to_frame, но он тоже не работает.

В моем HTML-коде нет другого идентификатора Iframe, и мой WebElement xpath равен /html/body/div[11]/div[1]/div[2]/a

1 Ответ

1 голос
/ 14 октября 2019

Капибара: Я бы предложил использовать within_frame, чтобы дескриптор откатывался назад после выполнения операций в кадре.

def check_report(report)
  frame = @session.find("//*[@id=\"OF_jreport\"]")
  within_frame(frame) do
    # write your logic to perform operations in the frame
  end
end

Или вы можете попробовать следующее дляпереключиться на рамку по умолчанию.

@session.switch_to_frame(:top)

Ruby: Пожалуйста, используйте ниже для переключения на содержимое по умолчанию.

 @session.switch_to_default_content

Если вы хотите переключиться назатем используйте родительский кадр ниже

@session.switch_to_parent_frame
...