标题部分编辑器
<iframe class="wysihtml5-sandbox" width="0" height="0" frameborder="0" security="restricted" allowtransparency="true" marginwidth="0" marginheight="0" style="display: inline-block; min-height: 160px;;">
<!DOCTYPE html>
<html>
<head>
<body class="wysihtml5-editor" contenteditable="true" spellcheck="true" style="overflow: hidden; min-height: 0px; background-color:;: rgb(255, 255, 255">
</html>
</iframe>
</div>
<div class="p-help-block"></div>
</div>
</div>
页脚部分编辑器
<iframe class="wysihtml5-sandbox" width="0" height="0" frameborder="0" security="restricted" allowtransparency="true" marginwidth="0" marginheight="0" style="display: inline-block; min-height: 160px; background-color: rgb(255, 255, 255>
<!DOCTYPE html>
<html>
<head>
<body class="wysihtml5-editor" contenteditable="true" spellcheck="true" style="overflow: hidden; min-height: 0px; background-color: rgb(255, 255, 255">
</html>
</iframe>
</div>
<div class="p-help-block"></div>
</div>
我可以通过下面的代码
在标题部分编辑器中输入文本driver.findElement(By.id("div_1_1_3_1_3_1_2_1_1_1_1")) ;
driver.switchTo().frame(driver.findElement(By.className("wysihtml5-sandbox")));
System.out.println("inside the header frame");
driver.findElement(By.className("wysihtml5-editor")).sendKeys("header section quote approval details");
的Thread.sleep(10000); System.out.println(“在标题框内输入文字”);
但是webdriver控件没有导航到页脚部分编辑器输入文本在我试过的代码下面
driver.findElement(By.id("div_1_1_3_1_2_1_1_1_1_1_4-in")).click();
Thread.sleep(5000);
System.out.println("inside the footer frame");
Thread.sleep(10000);
driver.findElement(By.className("wysihtml5-editor")).sendKeys("footer section quote approval details");
System.out.println("entered text inside footer frame");
注意:请让我知道解决方案,因为我在我的应用程序的许多阶段都面临同样的问题,我正在使用selenium webdriver进行自动化
答案 0 :(得分:4)
使用XPath表达式找到<iframe>
。
第一个:
driver.findElement(By.xpath("//iframe[@class='wysihtml5-sandbox'][1]"));
对于第二个:
driver.findElement(By.xpath("//iframe[@class='wysihtml5-sandbox'][2]"));
或者,请开发人员向不同的iframe添加id
,以便您区分它们。这将是一个比上面的XPath解决方案更优雅的解决方案,因为它意味着即使将更多的iframe添加到文档中,您的测试仍会继续有效。
答案 1 :(得分:0)
您也可以尝试使用iframe索引,如下所示:
driver.switchTo().frame(0); //To switch to first iframe
//Few actions
driver.switchTo().frame(1); //To switch to second iframe