【问题标题】:Selenium Webdriver: can't submit text into textbox areaSelenium Webdriver:无法将文本提交到文本框区域
【发布时间】:2019-12-28 04:43:29
【问题描述】:

我一直在尝试使用 AOL 邮件服务(发送短信)进行一些自动化测试。我想将文本插入文本框并提交,但总是失败。在 AOL 网页界面中,我必须输入消息,然后按“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]]

【问题讨论】:

  • 嗯,在您的文本框中获取文本后,您是否尝试手动提交? --- 只是试图提供帮助并不好
  • 在实际网页中,输入文本后,我必须按“Enter”提交消息。
  • 嗯所以你手动按下输入或你不能在那里提交按钮?我也猜想它可以通过在该按钮上设置提交来提交自己失去焦点或交互式更改
  • 嗨丹麦人,没有“提交按钮”。按“Enter”是唯一想提交文本和发送消息。
  • 附加了“data-dojo-attach-event”。所以我认为它与 Javasript 有一些关系。

标签: c# selenium textbox textarea


【解决方案1】:

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

如下图所示:

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

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

【讨论】:

    【解决方案2】:

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

    ele.SendKeys(Keys.Tab);
    

    【讨论】:

    • 阿米丝,谢谢你的建议。我试过但失败了。 AOL 的帮助部分说它仅适用于Enter
    猜你喜欢
    • 1970-01-01
    • 2021-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-29
    • 1970-01-01
    相关资源
    最近更新 更多