를 I 파이어 폭스 GeckoDriver 브라우저
셀레늄 - 파이어 폭스 GeckoDriver 오류 - - NoSuchElementException이 창 프레임 [0]로부터 [1] 켠 파이썬
난 창 전환로 에러 element not found
수신이 [1] 프레임 [0], 창 [1]로 돌아가서 프레임 닫기 버튼을 클릭합니다.
GeckoDriver
을 사용하고 싶습니다. ChromeDriver
의 성능 문제가 있었기 때문에 계속 사용하고 싶습니다. 죄송합니다. 내부 웹 사이트이므로 HTML
을 공유 할 수 없습니다.
- 문제를 정확히 지적하기 위해 다음을 수행했습니다.
- 는 동일한 코드로 테스트 크롬 드라이버 파이어 폭스
- 서지 제가 [1]
openframe
버튼을 클릭하고, [0]이 프레임에 스위칭없이closeframe
버튼을 클릭하여 창으로 전환 적절히 작동한다. - 프레임 [0]으로 전환하고 창 [1]로 돌아가
driver.close()
을 실행하면 창 [1]이 닫힙니다. - 프레임 [0]에서 전환 한 후 창 [1]에서
driver.page_source
을 읽을 수 있으며 요소가 여전히page_source
에 있으며 변경되지 않았 음을 확인하십시오. - 다시 프레임 [0]에서 창 [0]으로 전환하고 버튼 [1]을 다시 열면 제대로 작동합니다. 그런 다음 열기 및 닫기 프레임 단추를 클릭 할 수 있습니다.
그래서 문제는 프레임으로부터 [0] 다시 윈도우 [1], 파이어 폭스 GeckoDriver 창에 [1]의 요소를 누르려고 스위칭에 상주.
파이썬 : 2.7
셀레늄 : 3.0.1
GeckoDriver : v0.13.0
파이어 폭스 :
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: Message: Unable to locate element: [id="closeframe"]
51.0.1 코드입니다
전환을 위해 색인을 사용하고 있습니다. 프레임을 열거 나 닫은 후에 색인이 올바른지 확인하십시오. 프레임 이름과 mainWindow로 전환 해보십시오. – Moshisho