<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>
Trong trường hợp này có iframe
dưới iframe
. Và tôi phải chọn bên ngoài iframe
để chuyển đến bên trong iframe
và viết nội dung nằm bên trong iframe
.Cách xử lý khung nội tuyến trong Selenium WebDriver bằng cách sử dụng java
Tiếp theo, tôi phải thoát ra từ bên trong iframe
đến bên ngoài iframe
và nhấp vào nút OK, (nằm ở bên ngoài iframe
).
Sau đây là mã của tôi
/*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();
Sau đây là vấn đề của tôi:
mã kiểm tra của tôi đang làm việc tốt lên đến hàng số 4 tức là viết vào cơ thể, nhưng tôi muốn đến từ bên trong ra bên ngoài iframe
nó nói rằng phần tử //button[text()='OK']
không được tìm thấy.
Tôi đã thử sử dụng chỉ mục, cha mẹ, người thân, nhưng không có may mắn.
LƯU Ý: Nếu tôi không chọn khung bên trong (cq-gen379). Tôi có thể bấm vào nút OK
.
Ngoài ra, như là một FYI: Tôi đã tìm thấy rằng switchTo(). Khung cần phải chờ đợi tiềm ẩn disactivated: driver.manage(). Timeouts(). ImplicitlyWait (0, TimeUnit.SECONDS); – JohnP2