Help us understand the problem. What is going on with this article?

Seleniumでiframeに出入りしてみた

More than 1 year has passed since last update.

なぜか取れないiframeの中身

以前スクレイピングをしていた際、検証モードからセレクタを指定しているのにも関わらず

selenium.common.exceptions.NoSuchElementException

とエラーを吐きました。

中を見ると操作したい部分がiframe構造の中に入っており、どうやらiframeの外からでは中のDOMを操作できないようになっていました。面倒だったので対処法を残しておきます。

iframeに入ろう!

    iframe = driver.find_element_by_css_selector('欲しいiframeのcssセレクタ')
    driver.switch_to_frame(iframe)

これでiframe内のDOMにアクセスできるようになりました。

iframeから抜けてみよう!

    driver.switch_to.default_content()

一行でiframeから抜け出せます。

最後に

この記事を見ると、iframe内のリンクを直接開く方法もありますね。
seleniumで操作しなければいけない工数が少ない場合は、こちらの記事にある方がお勧めだと思います。

直接開く方法はページの真ん中より少し下に載っています。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away