Я получаю сообщение об ошибке element not found
в браузере Firefox GeckoDriver
когда я переключаюсь с окна [1] на фрейм [0], обратно в окно [1], а затем нажимаю кнопку закрытия фрейма.
Я хочу продолжать использовать GeckoDriver
, потому что у меня были проблемы с производительностью с ChromeDriver
. Извините, это внутренний веб-сайт, и я не могу поделиться HTML
.
- I have done the following to pinpoint the issue.
- Tested with exact same code and works properly in Chrome driver
- Работает в Firefox, когда я переключаюсь в окно [1], нажимаю кнопку
openframe
, а затем нажимаю кнопкуcloseframe
, не переключаясь на фрейм [0]. - Я могу переключиться на фрейм [0], переключиться обратно в окно [1] и сделать
driver.close()
, и оно закроет окно [1]. - Я могу прочитать
driver.page_source
из окна [1] после переключения обратно с кадра [0] и увидеть, что элемент все еще находится вpage_source
и не изменился. - Я могу переключиться из кадра [0] обратно в окно [0] и щелкнуть кнопку, чтобы снова открыть окно [1], и это работает правильно. Затем я могу щелкнуть кнопки открытия и закрытия фрейма.
Таким образом, проблема заключается в переключении из кадра [0] обратно в окно [1], а затем при попытке щелкнуть элемент в окне [1] в Firefox GeckoDriver.
Python: 2.7
Selenium: 3.0.1
GeckoDriver: v0.13.0
Firefox: 51.0.1
Вот код:
firefox_capabilities = DesiredCapabilities.FIREFOX
firefox_capabilities['marionette'] = True
driver = webdriver.Firefox(capabilities=firefox_capabilities)
driver.get('www.internalwebsite.com')
driver.find_element_by_id('opensnewwindow').click()
driver.switch_to_window(driver.window_handles[1])
driver.find_element_by_id('opennewframe').click()
driver.switch_to_frame(0)
//read contents
driver.switch_to_window(driver.window_handles[1])
driver.find_element_by_id('closeframe').click()
Ошибка:
selenium.common.exceptions.NoSuchElementException: сообщение: невозможно найти элемент: [id = "closeframe"]