Невозможно найти кадр? Рубин - PullRequest
0 голосов
/ 06 июня 2019

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

Когда я запускаю скрипт, я получаю следующую ошибку:

Selenium::WebDriver::Error::NoSuchFrameError: Unable to locate frame: 1

or

Selenium::WebDriver::Error::StaleElementReferenceError

Но в html есть элемент iframe, обернутый вокруг элемента, который я пытаюсь найти.Я использовал регистратор Selenium, чтобы лучше выяснить, какой это кадр, и он говорит мне, что индекс равен 1. Я попытался определить местонахождение кадра по его идентификатору, но он не может его найти.Затем я попытался подождать 20-60 секунд в надежде, что это сработает.Это просто время ожидания.

Единственное различие, которое я мог видеть между другими моментами, когда я переключал кадры и теперь, это то, что кадр, который я сейчас ищу, находится в цикле.Это влияет на это вообще?Любая помощь приветствуется!

Вот мой код:


select_list.options.each { |option|
             if option.text == ""
                @driver.find_element(xpath: '//*[@id="txt_source"]/option[2]').click

                @driver.find_element(xpath: '//*[@id="search_button"]/button[2]').click #small arrow

                sleep(10)

                @driver.find_element(xpath: '//*[@id="search_button"]/div/a[3]').click #Button that navigates to the next page


                sleep(10)
                @driver.find_element(xpath: '//*[@id="main_action"]').click




                @driver.switch_to.frame(1) #Where is fails




                @driver.find_element(xpath: '/html/body/table/tbody/tr[2]/td/table/tbody/tr[2]/td/input').click

               @driver.switch_to.default_content


             end

        }

1 Ответ

0 голосов
/ 10 июня 2019

Если вы переключаетесь на фрейм как часть цикла, вам нужно переключиться обратно из него, иначе вторая итерация цикла не будет работать.

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