Selenium WebDriver bietet die Möglichkeit, mit Webelementen innerhalb von iFrames zu interagieren. Im beschriebenen Szenario gibt es zwei verschachtelte iFrames: cq-cf-frame und cq-gen367. Das Ziel besteht darin, Aktionen innerhalb beider iFrames auszuführen und dann zur Hauptseite zurückzukehren.
Der bereitgestellte Code stößt auf ein Problem beim Zurückwechseln zum äußeren iFrame (cq-cf-frame). nach der Interaktion mit dem inneren iFrame (cq-gen367). Wenn Sie versuchen, außerhalb des inneren iFrames auf die Schaltfläche „OK“ zu klicken, kann der WebDriver das Element nicht finden.
Um dieses Problem zu beheben, müssen Sie alle iFrames beenden, bevor Sie zurückwechseln zu einem bestimmten. Dies kann mit der Funktion „driver.switchTo().defaultContent();“ erreicht werden. Verfahren. Standardmäßig setzt diese Methode den WebDriver auf das Haupt-HTML-Dokument außerhalb aller iFrames zurück.
Hier ist eine aktualisierte Version des bereitgestellten Codes, der erfolgreich durch die verschachtelten iFrames navigiert und wie beabsichtigt mit den Elementen interagiert:
<code class="java">/*Line 1 */ driver.switchTo().frame("cq-cf-frame"); /* 2 */ driver.findElement(By.css("#extdd-9 > div.tblRow > input.edititem").click(); /* 3 */ driver.switchTo().frame("cq-gen379"); /* 4 */ driver.findElement(By.id("CQrte")).sendKeys("Tnx"); // Navigate back to the top level driver.switchTo().defaultContent(); // Switch to the outer frame again driver.switchTo().frame("cq-cf-frame"); /* 6 */ driver.findElement(By.xpath("//button[text()='OK']")).click();</code>
Durch Hinzufügen von drivers.switchTo().defaultContent(); Zwischen den Zeilen 4 und 5 verlässt der WebDriver den inneren iFrame und kehrt zum Haupt-HTML-Dokument zurück. Dann wird der Treiber.switchTo().frame("cq-cf-frame"); Die Anweisung wechselt zurück zum äußeren iFrame, sodass der WebDriver wie erwartet mit der Schaltfläche „OK“ interagieren kann.
Das obige ist der detaillierte Inhalt vonWie gehe ich effektiv mit verschachtelten iFrames in Selenium WebDriver (Java) um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!