【问题标题】:Verify typed text in input text - Selenium验证输入文本中输入的文本 - Selenium
【发布时间】:2018-06-09 16:19:25
【问题描述】:

我有一个将键发送到文本框的简单方法,但有时缺少结尾字母或整个文本,但 selenium 在此测试步骤中返回“通过”。这只发生在具有 4 个元素的特定对话窗口中: 1. 选择 2.输入文字 3. 保存按钮 4. 取消按钮

测试用例从选择列表中选择一个值,然后在文本框中输入给定的字符串并点击保存。

我可以在输入文本后以某种方式立即验证它是否等于预期的文本吗?我尝试使用 textboxelement.getText() 但它返回 null,可能是因为光标仍在文本框中并且文本未发送。我想在不按 ENTER 之类的键的情况下解决它,因为它可能会关闭此对话框窗口。

我的发送文本方法:

public final void sendText(final String value, final String id) {
    final By locator = By.id(textOrVariableValue(id));
        final WebElement element = getElementByLocator(locator, ExpectedConditions.elementToBeClickable(locator), 10, true);
        element.clear();
        element.sendKeys(textOrVariableValue(value));

}

提前致谢!

【问题讨论】:

  • 您尝试在其中添加文本的text box 是否存在任何子元素?
  • 它看起来像这样:
    如果输入验证失败,则会显示警报 div。

标签: java html selenium testing


【解决方案1】:

向文本框发送密钥并在输入文本后立即尝试验证如果它等于预期的文本将始终return null 这就是预期行为

原因

当您调用 sendKeys() 时,它只是将 字符串 粘贴到文本框中。不执行任何其他操作,也不返回任何内容。所以 HTML DOM 没有变化。

所以,当你尝试这样做时:

textboxelement.getText()

null 被返回。

如果您点击 Save 按钮,Save 按钮的 onClick() 事件会执行预期的功能(调用 JavaScript / AJAX Scripts) 这反过来又改变了 HTML DOM 并且文本被 DOM Tree 所容纳。现在,如果您尝试:

textboxelement.getAttribute("attribute_name");

您将能够检索文本。

最后,正如您提到的 without pressing a key like ENTER because it might close this dialog window,这就是 Selenium 和您的 Automation ScriptDOM Tree 中的文本将如何容纳 通过 findElement()findElements()

查找

【讨论】:

    猜你喜欢
    • 2015-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-01
    • 1970-01-01
    • 2015-11-09
    • 1970-01-01
    相关资源
    最近更新 更多