在从框架切换回默认内容时,textarea数据将在selenium webdriver中被删除

时间:2016-03-17 13:54:36

标签: selenium selenium-webdriver

以下是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();

我在这里做错了什么。

2 个答案:

答案 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属性?