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

问题描述 投票:0回答:2

我一直在尝试使用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]]
c# selenium textbox textarea
2个回答
1
投票

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

其外观类似于下图:enter image description here

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

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

-1
投票

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

ele.SendKeys(Keys.Tab);
© www.soinside.com 2019 - 2024. All rights reserved.