python3でSeleniumを使いiframe無いの要素を取得する方法です。
スクレイピングではそのままiframe内のxpathやidを指定しても
Message: no such element: Unable to locate element
という様にelementが見つからないと注意されます。
上の画像のようにiframeは別ウィンドウとして扱われるので当たり前と言えば当たり前ですが
switch_to.frameを使ってiframe側に切り替える必要があります。
1 2 3 |
iframe = driver.find_element_by_id('○○○') driver.switch_to.frame(iframe) # 取得したインラインフレームにスイッチ element = driver.find_element_by_xpath("○○○").click() |
これでiframeを切り替えて要素のクリックが出来ます。
自動的に閉じる場合はそのままでもいいですが、元のページに戻るには
driver.switch_to.default_content()
を使います。
要素が見つからない!なんでだ?という時は要素がiframe内にないかを確認してみてください。
最高の6ヶ月!超実践型プログラミングスクール【.pro】