1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SleniumでiFrameのある要素を取得するには

Posted at

環境

Ruby2.6
selenium

内容

ブラウザからDevToolsでElementsを確認すると、要素は確かに存在するが、SleniumからHTMLの要素を指定すると、no such element のエラーが出るときがあります。そのような場合は、iFrameが使われている可能性があります。

sample.rb
puts driver.page_source

そのような事象が発生したときは、Sleniumから取得しているHTMLを調べてみよう。標準出力させてテキストにリダイレクトすれば簡単に確認することができます。

iFrameを使っている場合、DevToolsで表示されるように、すべてのHTMLが展開された形式で表示されるわけではありません。リダイレクトして取得したテキストファイルから要素を検索してみてください。iFrameを使っていれば、検索しても要素見つからないはずです。存在しない要素を指定したため、当然no such element と出てくるはずです。

iFrameを複数使っている場合は、どこのiFrameに該当の要素が含まれているかは、1個1個確認していく他ありません。

iFrameのタグでid = hogeで指定されていた場合は、この1行でiFrameを展開させることができます。

sample.rb
driver.switch_to.frame 'hoge'

やり方は1つだけではなく、他にも色々とやりようはあるようです。

参考URL
https://www.selenium.dev/ja/documentation/webdriver/interactions/frames/

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?