HTML
 Computer >> コンピューター >  >> プログラミング >> HTML

【Selenium入門】iframeの操作方法 – switchTo().frame()でフレームを切り替える


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

【Selenium入門】iframeの操作方法 – switchTo().frame()でフレームを切り替える

デフォルトの状態では、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();
    }
}

実行結果

このコードを実行すると、コンソールに切り替えたフレーム内のテキストが出力されます。

【Selenium入門】iframeの操作方法 – switchTo().frame()でフレームを切り替える

  1. C#とSeleniumを使ってマウスポインタを特定の場所や要素に移動する方法

    Selenium WebDriver(C#)では、Actionsクラスを使用することで、マウスポインタを特定の場所や要素へ移動させることができます。まず最初に、Actionsクラスのオブジェクトを作成する必要があります。要素へポインタを移動するには、MoveToElementメソッドを呼び出し、引数として要素のロケーターを渡します。そして、実際にこの操作を実行するにはPerformメソッドを使用します。要素への移動後は、Clickメソッドを使ってその要素をクリックすることも可能です。また、特定の座標位置へ移動したい場合は、MoveByOffsetメソッドを使用し、X軸とY軸方向のオフセット値(

  2. 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)を渡します。最後