富文本框的常见实现技术用到了Frame标签,并且在Frame里面实现了一个完整的HTML网页结构,所以使用普通的定位模式无法直接定位到富文本框对象。
方法一:使用JavaScript语句来实现富文本框中的HTML格式内容输入
WebDriverWait wait=new WebDriverWait(driver,15);
wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//*[@id='write_mail']")));
subject.sendKeys("发送给自己的一份测试邮件“);
//切换到富文本框所在的Frame对象中,具体的Frame的Id可以用FirePath工具获取得到
driver.switchTo().frame("htmlEditor");
JavascrptExecutor js=(JavascriptExecutor) driver;
js.executeScript("document.getElementsByTagName('body')[0].innerHTML='<b>邮件要发送的内容<b>'");
driver.switchTo().defaultContent();
方法二:
在邮件标题输入框输入完成自定义文字后,按下tab键可以自动将页面的焦点切换到富文本框的编辑区域中
pressTabKey();
setAndctrlVClipboardData("邮件发送的正文内容");
sendMailButton.click();
Assert.assertTrue(driver.getPageSource().contains("发送成功"));