Rumah > Java > javaTutorial > teks badan

Bagaimana untuk Berinteraksi dengan Elemen dalam iFrames Bersarang Menggunakan Selenium WebDriver dalam Java?

DDD
Lepaskan: 2024-10-30 12:52:27
asal
886 orang telah melayarinya

How to Interact with Elements in Nested iFrames Using Selenium WebDriver in Java?

Cara Menavigasi Nested iFrames dengan Berkesan Menggunakan Selenium WebDriver dalam Java

Dalam Selenium WebDriver, mengendalikan iFrames bersarang boleh menjadi tugas yang mencabar. Mari kita mendalami senario tertentu:

Pertimbangkan struktur HTML berikut, di mana iframe bersarang dalam iframe lain:

<code class="html"><div>
  <iframe id="cq-cf-frame">
    <iframe id="gen367">
      <body id="CQrte">...</body>
    </iframe>
  </iframe>
</div></code>
Salin selepas log masuk

Matlamat kami adalah untuk berinteraksi dengan elemen dalam kedua-dua iFrames.

Pernyataan Masalah:
Setelah memilih iframe luar dan menavigasi ke iframe dalam, cubaan untuk mengklik elemen dalam iframe luar (cth., butang OK) gagal, mengakibatkan elemen tidak dijumpai pengecualian.

Penyelesaian:

Untuk berjaya menavigasi antara iFrames bersarang dan berinteraksi dengan elemen yang diingini, ikut langkah berikut:

  1. Pilih iFrame Luar:

    <code class="java">driver.switchTo().frame("cq-cf-frame");</code>
    Salin selepas log masuk
    Salin selepas log masuk
  2. Pilih iFrame Dalam:

    <code class="java">driver.switchTo().frame("cq-gen379");</code>
    Salin selepas log masuk
  3. Berinteraksi dengan Elemen Inner iFrame:

    <code class="java">driver.findElement(By.id("CQrte")).sendKeys("Tnx");</code>
    Salin selepas log masuk
  4. Keluar Inner iFrame:

    <code class="java">// Between steps 4 and 5, remove the line:
    // selenium.selectFrame("relative=up");
    
    driver.switchTo().defaultContent(); // This exits both nested frames</code>
    Salin selepas log masuk
  5. Masukkan Semula iFrame Luar:

    <code class="java">driver.switchTo().frame("cq-cf-frame");</code>
    Salin selepas log masuk
    Salin selepas log masuk
  6. Berinteraksi dengan Elemen iFrame Luar:

    <code class="java">// Continue step 6
    driver.findElement(By.xpath("//button[text()='OK']")).click();</code>
    Salin selepas log masuk

Dengan menggunakan driver.switchTo().defaultContent(); sebelum memasuki semula iframe luar, kami dengan berkesan keluar dari semua bingkai bersarang dan kemudian kembali ke bingkai khusus yang kami perlukan. Ini menyelesaikan isu elemen tidak ditemui dan membolehkan kami berinteraksi dengan elemen yang diingini.

Atas ialah kandungan terperinci Bagaimana untuk Berinteraksi dengan Elemen dalam iFrames Bersarang Menggunakan Selenium WebDriver dalam Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan