Gestion des iframes imbriquées dans Selenium WebDriver à l'aide de Java
Cette question porte sur la gestion des iframes imbriquées à l'aide de Selenium WebDriver en Java. La structure HTML fournie implique deux iframes imbriquées. La tâche consiste à sélectionner l'iframe externe pour accéder à l'iframe interne et saisir du texte dans son corps. Par la suite, l'objectif est de quitter l'iframe interne, de rentrer dans l'iframe externe et de cliquer sur un bouton "OK" situé dans l'iframe externe.
Initialement, le code donné passe avec succès à l'iframe externe (" cq-cf-frame") et écrit le texte dans le corps de l'iframe imbriquée ("cq-gen379"). Cependant, lorsque vous tentez de quitter l'iframe interne et de localiser le bouton « OK » dans l'iframe externe, l'élément est introuvable.
Résoudre le problème
Pour résoudre Pour résoudre le problème, il est nécessaire de quitter explicitement tous les cadres imbriqués (dans ce cas, l'iframe interne) avant de rentrer dans le cadre externe. Ceci est réalisé en utilisant la méthode driver.switchTo().defaultContent(). En utilisant cette méthode, vous pouvez quitter le frame actuel et revenir au document principal.
Voici le code corrigé :
<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>
Cette modification garantit que le code quitte l'iframe interne avant tenter d'interagir avec des éléments dans l'iframe externe. Il localisera avec succès le bouton "OK" et cliquera dessus.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!