以下是html代码
<td id="ctl00_MainContent_UCApproverDecision_RadEditorContentCenter" class="reContentCell" style="height:100%;">
<label style="display:none;" for="ctl00_MainContent_UCApproverDecision_RadEditorContentContentHiddenTextarea">RadEditor hidden textarea</label>
<textarea id="ctl00_MainContent_UCApproverDecision_RadEditorContentContentHiddenTextarea" class="rfdRoundedCorners" style="display:none;" cols="20" rows="4" name="ctl00$MainContent$UCApproverDecision$RadEditorContent"/>
<iframe id="ctl00_MainContent_UCApproverDecision_RadEditorContent_contentIframe" frameborder="0" src="javascript:'<html></html>';" style="width: 100%; height: 453px; margin: 0px; padding: 0px;" title="Rich text editor with ID ctl00_MainContent_UCApproverDecision_RadEditorContent"></iframe>
</td>
我使用下面的代码,使用此我可以输入文本。我在浏览器中验证过,但在切换到默认内容时,textarea变得空白。
driver.switchTo().frame(0);
driver.findElement(By.xpath(html/body)).clear();
driver.findElement(By.xpath(html/body)).sendKeys("MyTESTData");
driver.switchTo().defaultContent();
我在这里做错了什么。
答案 0 :(得分:0)
您确定这是正确的HTML并且已完成吗? TEXTAREA
标记不在IFRAME
内,并且样式为display:none
,因此不应该显示。您的代码正在清除BODY
标记...这应该是正确的。我不确定为什么会这样做。
我会从下面的内容开始。
WebElement textarea = driver.findElement(By.cssSelector("textarea.rfdRoundedCorners"));
textarea.clear();
textarea.sendKeys("MyTESTData");
答案 1 :(得分:-1)
第0帧 是默认内容。如果您要解决第一个iFrame问题,则需要致电driver.switchTo().frame(1);
。但最好通过其定位器而不是索引号来识别目标帧。它是否有id
属性?