Heim > Java > javaLernprogramm > Wie interagiere ich mit Elementen in verschachtelten iFrames mithilfe von Selenium WebDriver in Java?

Wie interagiere ich mit Elementen in verschachtelten iFrames mithilfe von Selenium WebDriver in Java?

DDD
Freigeben: 2024-10-30 12:52:27
Original
924 Leute haben es durchsucht

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

So navigieren Sie effektiv durch verschachtelte iFrames mit Selenium WebDriver in Java

In Selenium WebDriver kann der Umgang mit verschachtelten iFrames eine herausfordernde Aufgabe sein. Schauen wir uns ein bestimmtes Szenario an:

Betrachten Sie die folgende HTML-Struktur, bei der ein Iframe in einem anderen Iframe verschachtelt ist:

<code class="html"><div>
  <iframe id="cq-cf-frame">
    <iframe id="gen367">
      <body id="CQrte">...</body>
    </iframe>
  </iframe>
</div></code>
Nach dem Login kopieren

Unser Ziel ist es, mit Elementen in beiden iFrames zu interagieren.

Problemstellung:
Beim Auswählen des äußeren Iframes und Navigieren zum inneren Iframe schlagen Versuche, auf ein Element im äußeren Iframe (z. B. eine OK-Schaltfläche) zu klicken, fehl, was zu einem Element führt Ausnahme nicht gefunden.

Lösung:

Um erfolgreich zwischen verschachtelten iFrames zu navigieren und mit gewünschten Elementen zu interagieren, befolgen Sie diese Schritte:

  1. Wählen Sie den äußeren iFrame:

    <code class="java">driver.switchTo().frame("cq-cf-frame");</code>
    Nach dem Login kopieren
    Nach dem Login kopieren
  2. Wählen Sie den inneren iFrame:

    <code class="java">driver.switchTo().frame("cq-gen379");</code>
    Nach dem Login kopieren
  3. Mit innerem iFrame-Element interagieren:

    <code class="java">driver.findElement(By.id("CQrte")).sendKeys("Tnx");</code>
    Nach dem Login kopieren
  4. Inneren iFrame verlassen:

    <code class="java">// Between steps 4 and 5, remove the line:
    // selenium.selectFrame("relative=up");
    
    driver.switchTo().defaultContent(); // This exits both nested frames</code>
    Nach dem Login kopieren
  5. Äußeren iFrame erneut eingeben:

    <code class="java">driver.switchTo().frame("cq-cf-frame");</code>
    Nach dem Login kopieren
    Nach dem Login kopieren
  6. Mit äußerem iFrame-Element interagieren:

    <code class="java">// Continue step 6
    driver.findElement(By.xpath("//button[text()='OK']")).click();</code>
    Nach dem Login kopieren

Durch die Verwendung von drivers.switchTo().defaultContent(); Bevor wir den äußeren Iframe erneut betreten, verlassen wir effektiv alle verschachtelten Frames und kehren dann zu dem spezifischen Frame zurück, den wir benötigen. Dadurch wird das Problem „Element nicht gefunden“ behoben und wir können mit dem gewünschten Element interagieren.

Das obige ist der detaillierte Inhalt vonWie interagiere ich mit Elementen in verschachtelten iFrames mithilfe von Selenium WebDriver in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage