element not found
Firefox GeckoDriver ブラウザでエラーが発生しました
ウィンドウ[1]からフレーム[0]に切り替え、ウィンドウ[1]に戻り、フレームを閉じるボタンをクリックすると。
GeckoDriver
のパフォーマンスに問題があったため、引き続き使用したいと考えていChromeDriver
ます。申し訳ありませんが、これは内部 Web サイトであり、共有できませんHTML
。
- 問題を特定するために、次のことを行いました。
- まったく同じコードでテストされ、Chrome ドライバーで正しく動作します
- フレーム[0]に切り替えずに、ウィンドウ[1]に切り替えてボタンを
openframe
クリックし、ボタンをクリックすると、Firefoxで動作します。closeframe
- フレーム [0] に切り替え、ウィンドウ [1] に戻って a
driver.close()
を実行すると、ウィンドウ [1] が閉じます。 driver.page_source
フレーム[0]から切り替えた後、ウィンドウ[1]から読み取ることができ、要素がまだにありpage_source
、変更されていないことがわかります。- フレーム [0] からウィンドウ [0] に切り替えて、ボタンをクリックしてウィンドウ [1] を再度開くと、正常に動作します。次に、フレームを開くボタンと閉じるボタンをクリックします。
したがって、フレーム [0] からウィンドウ [1] に切り替えてから、Firefox GeckoDriver のウィンドウ [1] の要素をクリックしようとすると、問題が発生します。
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"]