Chrome拡張機能があり、Seleniumでテストしたいと思います。この拡張機能はiframeタグをページに配置します。Selenium:Chrome拡張機能のNoSuchFrameException
私は正常に次のコマンドを実行して、iframeタグを取得することができます:私は「NoSuchFrameException」エラーを取得し、フレームへの切り替えしようとすると、しかし
top_frame = driver.find_element(By.XPATH, value='//iframe[@class="top-frame"]')
を。
driver.switch_to.frame(top_frame)
次の行は、フレームのクラス名を正しく
print(top_frame.get_attribute('class'))
エラーログを出力します
Testing http://www.google.com
Traceback (most recent call last):
File "test/run_tests.py", line 200, in <module>
main()
File "test/run_tests.py", line 197, in main
run_tests(args.plugin, args.out, args.url)
File "test/run_tests.py", line 167, in run_tests
button = check_button(driver, url)
File "test/run_tests.py", line 84, in check_button
driver.switch_to.frame(top_frame)
File "/home/burak/.virtualenv/extension/lib/python3.5/site-packages/selenium/webdriver/remote/switch_to.py", line 87, in frame
self._driver.execute(Command.SWITCH_TO_FRAME, {'id': frame_reference})
File "/home/burak/.virtualenv/extension/lib/python3.5/site-packages/selenium/webdriver/remote/webdriver.py", line 236, in execute
self.error_handler.check_response(response)
File "/home/burak/.virtualenv/extension/lib/python3.5/site-packages/selenium/webdriver/remote/errorhandler.py", line 192, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchFrameException: Message: no such frame: element is not a frame
(Session info: chrome=60.0.3112.90)
(Driver info: chromedriver=2.31.488763 (092de99f48a300323ecf8c2a4e2e7cab51de5ba8),platform=Linux 4.10.0-30-generic x86_64)
フレームが初期化されていない可能性があります。ブラウザがフレーム自体をブロックしている可能性がありますか? –
しかし、私はフレームを得ることができます。私は、フレームの初期化は問題ではないと思います。 –
あなたは現在、上記のフレーム以外のフレームにいますか? – Kapil