を私は、Firefox GeckoDriverブラウザ
セレン - FirefoxのGeckoDriverエラー - - はNoSuchElementExceptionウィンドウにフレーム[0]から[1]切り替え後のPython
iはウィンドウの切り替えのエラー、element not found
を受けている[1]〜フレーム[0]、ウィンドウ[1]に戻り、閉じるフレームボタンをクリックします。
私はChromeDriver
でパフォーマンスの問題が発生していたので、GeckoDriver
を使い続けたいと思います。申し訳ありません、これは内部のウェブサイトであり、HTML
を共有することはできません。
- 私は問題を特定するために以下を行っています。
- はまったく同じコードでテストされ、Firefoxで
- ワークスiはウィンドウに切り替えクロムドライバで正常に動作[1]ボタンをクリックして、[0]フレームに切り替えることなく、
closeframe
ボタンをクリックしてください。 - フレーム[0]に切り替え、ウィンドウ[1]に戻って
driver.close()
を実行するとウィンドウ[1]が閉じます。 - フレーム[0]からスイッチバックした後にウィンドウ[1]から
driver.page_source
を読み取って、その要素がまだpage_source
にあり、変更されていないことを確認できます。 - フレーム[0]からウィンドウ[0]に切り替えてボタンをクリックすると、ウィンドウ[1]を再度開くことができ、正しく動作します。それから私は開いていると閉じるフレームボタンをクリックすることができます。
だから、問題はちょうどフレームからの切り替えに常駐する[0]バックウィンドウに[1]、その後、ウィンドウ内の要素をクリックしようとしている[1] FirefoxのGeckoDriverインチ
のPython:2.7
セレン:3.0.1
GeckoDriver:v0.13.0
のFirefox:
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は、コードです
切り替えにインデックスを使用していますが、フレームを開いたり閉じたりした後にインデックスが正しいことを確認してください。フレーム名とメインウィンドウで切り替えてみてください。 – Moshisho