Я новичок в 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
}