Umgang mit verschachtelten Iframes in Selenium WebDriver mit Java
Diese Frage dreht sich um den Umgang mit verschachtelten Iframes mit Selenium WebDriver in Java. Die bereitgestellte HTML-Struktur umfasst zwei verschachtelte Iframes. Die Aufgabe besteht darin, den äußeren Iframe auszuwählen, um auf den inneren Iframe zuzugreifen und Text in seinen Text einzugeben. Anschließend besteht das Ziel darin, den inneren Iframe zu verlassen, den äußeren Iframe erneut zu betreten und auf die Schaltfläche „OK“ im äußeren Iframe zu klicken.
Zunächst wechselt der angegebene Code erfolgreich zum äußeren Iframe („ cq-cf-frame“) und schreibt Text in den Körper des verschachtelten Iframes („cq-gen379“). Beim Versuch, den inneren Iframe zu verlassen und die Schaltfläche „OK“ im äußeren Iframe zu finden, wird das Element jedoch nicht gefunden.
Behebung des Problems
Zu lösen Das Problem besteht darin, dass alle verschachtelten Frames (in diesem Fall der innere Iframe) explizit ausgewechselt werden müssen, bevor der äußere Frame erneut eingegeben wird. Dies wird mit der Methode drivers.switchTo().defaultContent() erreicht. Mit dieser Methode können Sie den aktuellen Frame verlassen und zum Hauptdokument zurückkehren.
Hier ist der korrigierte Code:
<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>
Diese Änderung stellt sicher, dass der Code den inneren Iframe vorher verlässt versucht, mit Elementen innerhalb des äußeren Iframes zu interagieren. Die Schaltfläche „OK“ wird erfolgreich gefunden und angeklickt.
Das obige ist der detaillierte Inhalt vonUmgang mit verschachtelten Iframes in Selenium WebDriver mit Java: Eine Schritt-für-Schritt-Anleitung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!