<div>
<iframe id="cq-cf-frame ">
<iframe id="gen367">
<body spellcheck="false" id="CQrte" style="height: 255px; font-size: 12px; font-family:tahoma,arial,helvetica,sans-serif; background-image: url("/libs/cq/ui/widgets/themes/default/ext/form/text-bg.gif"); background-repeat: repeat-x; background-attachment: fixed;">
<p>4t43t4<br></p>
</body >
</iframe>
</iframe>
</div>
En este escenario hay una iframe
bajo iframe
. Y tengo que seleccionar el exterior iframe
para ir al interior iframe
y escribir en el cuerpo que está en el interior iframe
.Cómo manejar iframe en selenio WebDriver usando java
A continuación, tengo que salir de la iframe
interior a iframe
exterior y haga clic en el botón Aceptar, (que se encuentra en el exterior iframe
).
que sigue es mi código
/*Line 1 */ driver.switchTo().frame("cq-cf-frame");
/* 2 */ driver.findElement(By.css("#extdd-9 > div.tblRow > input.edititem").click();
/* 3 */ driver.switchT().Frame("cq-gen379");
/* 4 */ driver.findElement(By.id("CQrte").sendKeys("Tnx");
/* 5 */ selenium.selectFrame("relative=up");
/* 6 */ driver.findElement(By.xpath("//button[text()='OK']")).click();
siguiente es mi problema:
Mi código de prueba está trabajando bien hasta la línea número 4 es decir, escribir en el cuerpo, pero quiero venir desde el interior al exterior iframe
dice que no se ha encontrado el elemento //button[text()='OK']
.
Intenté con usar index, parent, relative, pero no tuve suerte.
NOTA: Si no selecciono el cuadro interno (cq-gen379). Puedo hacer clic en el botón OK
.
También, como un FYI: he encontrado que switchTo(). Frame necesita espera implícita desactivada: driver.manage(). Timeouts(). ImplicitlyWait (0, TimeUnit.SECONDS); – JohnP2