Mengendalikan Nested Iframes dalam Selenium WebDriver Menggunakan Java
Soalan ini berkisar tentang pengendalian iframe bersarang menggunakan Selenium WebDriver dalam Java. Struktur HTML yang disediakan melibatkan dua iframe bersarang. Tugasnya ialah memilih iframe luar untuk mengakses iframe dalam dan memasukkan teks ke dalam badannya. Selepas itu, matlamatnya adalah untuk keluar dari iframe dalam, masukkan semula iframe luar dan klik butang "OK" yang terletak di dalam iframe luar.
Pada mulanya, kod yang diberikan berjaya bertukar ke iframe luar (" cq-cf-frame") dan menulis teks ke dalam badan iframe bersarang ("cq-gen379"). Walau bagaimanapun, apabila cuba keluar dari iframe dalam dan mencari butang "OK" dalam iframe luar, elemen itu tidak ditemui.
Mengatasi Masalah
Untuk menyelesaikan isu ini, adalah perlu untuk menukar secara eksplisit daripada semua bingkai bersarang (dalam kes ini, iframe dalam) sebelum memasuki semula bingkai luar. Ini dicapai menggunakan kaedah driver.switchTo().defaultContent(). Dengan menggunakan kaedah ini, anda boleh keluar dari bingkai semasa dan kembali ke dokumen utama.
Berikut ialah kod yang diperbetulkan:
<code class="java">// Between step 4 and step 5 // Remove selenium.selectFrame("relative=up"); // Exit the nested iframe driver.switchTo().defaultContent(); // Re-enter the outer iframe driver.switchTo().frame("cq-cf-frame"); // Continue step 6 driver.findElement(By.xpath("//button[text()='OK']")).click();</code>
Pengubahsuaian ini memastikan kod keluar dari iframe dalam sebelum cuba berinteraksi dengan elemen dalam iframe luar. Ia akan berjaya mencari butang "OK" dan klik padanya.
Atas ialah kandungan terperinci Cara Mengendalikan Iframe Bersarang dalam Selenium WebDriver dengan Java: Panduan Langkah demi Langkah. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!