我在我的应用程序中使用MathML编辑器使用下面的代码我可以在编辑器中输入文本,它可以在编辑器中打印但在编辑器外面有“确定”按钮所以它的显示错误无法找到元素,我想要点击Ok Button。?
// Go for Editor并打印到编辑器
driver.switchTo().frame("iframeMathmlEditorcke_1");
WebElement editor = driver.findElement(By.xpath("//body"));
JavascriptExecutor jsExecutor = (JavascriptExecutor) driver;
jsExecutor.executeScript("arguments[0].innerHTML = 'Hello World'", editor);
//从编辑出来
driver.switchTo().frame("iframeMathmlEditorcke_2");
driver.switchTo().defaultContent();
/单击“确定”按钮
driver.findElement(By.id("cke_161_label")).click();
答案 0 :(得分:0)
如果您粘贴网页的HTML代码会很好,这会显示iframe的排列。
但共同的基础是, 首先来自" iframeMathmlEditorcke_1"通过切换到默认帧然后切换到其他帧" iframeMathmlEditorcke_2" (我假设您的确定按钮位于此iframe中,并且这些不是嵌套的iframe)。
然后尝试单击“确定”按钮。
答案 1 :(得分:0)
此解决方案对我有帮助:
final WebElement iFrame = Arrays.stream(iframes)
.filter(frame -> frame.getAttribute("id").startsWith("iframeMathmlEditorcke")
.findFirst().orElseThrow(() -> new AssertionError("Detail message what is wrong"));
element.clear();
element.sendKeys(value);
driver.switchTo().defaultContent();