【Selenium入門】iframeの操作方法 – switchTo().frame()でフレームを切り替える
Selenium WebDriverでは、iframe(インラインフレーム)を自由に操作することができます。HTMLのコード上では、<iframe>、<frameset>、<frame>タグによってフレームが定義されます。フレームとは、あるHTMLドキュメントの中に別のHTMLドキュメントを埋め込むための仕組みです。

デフォルトの状態では、Seleniumは親ブラウザ(メインウィンドウ)のドライバーにアクセスしています。そのため、フレーム内の要素を操作するには、ドライバーのフォーカスをメインブラウザウィンドウから対象のフレームへ移動させる必要があります。フレームへの切り替えには、主に以下の4つの方法があります。
switchTo().frame(id) - フレームのid属性またはname属性の値を引数として渡します。
構文:driver.switchTo().frame("id") - 指定したidを持つフレームに切り替えます。switchTo().frame(m) - フレームのインデックス番号を引数として渡します。インデックスは0から始まります。
構文:driver.switchTo().frame(0) - ページ上の最初のフレームに切り替えます。switchTo().frame(webelement n) - フレームを表すWebElementオブジェクトを引数として渡します。
構文:driver.switchTo().frame(l) - WebElement「l」が示すフレームに切り替えます。switchTo().defaultContent() - フォーカスをフレームからメインページ(親ドキュメント)へ戻します。
構文:driver.switchTo().defaultContent()
実装例
以下は、ネストされたフレームを含むテストページでフレームを切り替えるJavaコードの実装例です。まずリンクをクリックしてページを遷移し、続いてフレーム名「frame-bottom」を指定してフレームへ切り替え、その中のbody要素からテキストを取得してコンソールに出力しています。
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import java.util.concurrent.TimeUnit;
public class iFrameMethods{
public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver", "C:\\Users\\ghs6kor\\Desktop\\Java\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("https://the-internet.herokuapp.com/frames");
driver.manage().timeouts().implicitlyWait(8, TimeUnit.SECONDS);
// 要素を特定してクリック
driver.findElement(By.partialLinkText("Nested")).click();
// フレーム名を指定してフレームへ切り替え
driver.switchTo().frame("frame-bottom");
WebElement m = driver.findElement(By.cssSelector("body"));
System.out.println("Frame text: " +m.getText());
driver.close();
}
}
実行結果
このコードを実行すると、コンソールに切り替えたフレーム内のテキストが出力されます。

-
C#とSeleniumを使ってマウスポインタを特定の場所や要素に移動する方法
Selenium WebDriver(C#)では、Actionsクラスを使用することで、マウスポインタを特定の場所や要素へ移動させることができます。まず最初に、Actionsクラスのオブジェクトを作成する必要があります。要素へポインタを移動するには、MoveToElementメソッドを呼び出し、引数として要素のロケーターを渡します。そして、実際にこの操作を実行するにはPerformメソッドを使用します。要素への移動後は、Clickメソッドを使ってその要素をクリックすることも可能です。また、特定の座標位置へ移動したい場合は、MoveByOffsetメソッドを使用し、X軸とY軸方向のオフセット値(
-
SeleniumとPythonで要素とテキストを取得する方法
Selenium WebDriverを使えば、Webページ上の要素とそのテキストを簡単に取得できます。手順としては、まずid、クラス名、CSSセレクターなどのロケーターを使って対象の要素を特定し、次にtextプロパティを使って要素内のテキストを取得します。基本構文s = driver.find_element_by_css_selector(h4).textここでdriverはWebDriverオブジェクトです。find_element_by_css_selectorメソッドは、CSSセレクターをロケーターとして要素を特定するために使用され、引数にロケーター値(この場合はh4)を渡します。最後