インデックス(ゼロベース)、name属性、id属性、またはWebElementで指定されたフレームにフォーカスを移します。このメソッドで取得できるHTML要素はframe、iframeのいずれかの要素です。
- 構文
- Boolean = WebDriver.SwitchToFrame( identifier, timeout, raise )
- 引数
- identifier 必須
- 切り替えるフレームのインデックス、name属性、id属性、WebElement オブジェクトのいずれかを指定
- timeout 省略可
- タイムアウト(単位:ms)。raiseにTrueが指定されている場合、時間が過ぎるとエラーが発生します。
- raise 省略可
- Trueのとき、タイムアウト経過後に例外を発生させる。
- 戻り値
使い方
フレームの数を取得
現在開いているページのiframe要素の数を取得します。
現在開いているページのframe要素の数を取得します。
現在開いているページのframe要素もしくはiframe要素の数を取得します。WebDriver.SwitchToFrame メソッドの引数にインデックスを指定する場合は、0から以下の結果の値の範囲で指定することで要素を取得できます。
インデックスからフレームを取得・切り替え
インデックスが0のフレームへ切り替えます。切り替えが出来たかを示すブール値が返り、問題なく切り替えが出来た場合はTrue、切り替えが出来なかった場合はFalseを返します。
name属性・id属性からフレームを取得・切り替え
WebDriver.SwitchToFrame メソッドの引数に文字列を指定した場合、その文字列に一致するname属性、id属性を持つフレーム要素が取得されます。
以下はname属性もしくはid属性がcontentのフレームに切り替えます。
WebElementオブジェクトからフレームを取得・切り替え
WebElement オブジェクトからフレームを切り替えます。
最初に見つかったクラス名mainのフレームに切り替えます。
以下は阿部寛のホームページで1つ目のフレーム(左側のメニュー)を取得し、リンクテキストが写真集のリンクをクリックします。
以下のHTMLはブログラムの動作に影響ない範囲で簡略化しています。
src属性の値からフレーム要素を特定
frameタグはsrc属性が必須のため、XPathでフレーム要素を特定することもできます。
以下はsrc属性の値がmenu.htmのフレーム要素を取得します。
title属性やname属性で特定したい場合は@srcを@titleや@nameのように変更します。
親フレームに戻す
WebDriver.SwitchToFrame メソッドでフレームを切り替えたあと、元のフレームに戻したいときはWebDriver.SwitchToFrame メソッドを使います。
