Selenium Webdriver:无法将文本提交到文本框区域

时间:2014-03-09 20:59:36

标签: c# selenium textbox textarea

我一直试图用AOL邮件服务(发送短信)进行一些自动化测试。我想将文本插入文本框并提交,但它始终失败。在AOL Web界面中,我必须输入消息,然后点击“Enter”提交或发送。 以下是文本框的外观:

<div id="dijit__Widget_66" class="inputContainer" layoutalign="bottom" data-dojo-type="ws/widget/Pane" widgetid="dijit__Widget_66">
<textarea class="wsInput" tabindex="201" data-dojo-attach-event="onkeyup: onKeyUp, onkeypress: onKeyPress, onblur: onBlurTextarea" data-dojo-attach-point="messageInput" style="width: 316px;"></textarea></div>

我在文本框区域中选择和插入文本的代码运行良好:

IWebElement ele = driver.FindElement(By.CssSelector("div[id*='dijit__Widget'].inputContainer>textarea.wsInput"));
ele.Clear();
ele.SendKeys("Hello");

但是当我想提交文本时,事情变得复杂,这些都不起作用:

ele.Submit();
ele.SendKeys(Keys.Enter);

SendKeys(Keys.Enter)仅在文本框中添加新行,而不是提交和发送消息。 我拼命寻求帮助!

**我发现Selenium IDE中的命令Keypress - Value: "013"(Enter键)有效。但它只适用于Selenium IDE,当导出到Webdriver时,我收到此错误:

// ERROR: Caught exception [ERROR: Unsupported command [keyPress | css=div[id*='dijit__Widget'].inputContainer>textarea.wsInput | 013]]

2 个答案:

答案 0 :(得分:1)

对于这篇文章而言,为时已晚,但对于希望解决此问题的其他人而言,则为时已晚。检查并查看将文本提交到该特定字段时是否触发了某个功能或事件。如果有,请查看是否可以通过在IDE上执行脚本将其删除。

如下图所示: enter image description here

以下是使用JS删除事件的方法:

document.getElementsByTagName('input')[input_index].attributes.removeNamedItem("eventname");

答案 1 :(得分:-1)

您是否尝试过使用TAB,不确定这是否有效,但您可以尝试一下:

ele.SendKeys(Keys.Tab);