java - 验证输入文本中输入的文本 - Selenium

标签 java html selenium testing

我有一个将键发送到文本框的简单方法,但有时会丢失结尾字母或整个文本,但 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));

提前致谢!

最佳答案

将键发送到文本框并尝试在键入文本后立即验证如果它等于预期文本将始终< em>return null 这就是预期行为

原因

当你调用 sendKeys() ,它只是将 Character String 粘贴到文本框中。不执行任何其他操作并且不返回任何内容。所以 HTML DOM 没有变化

因此,当您尝试这样做时:

textboxelement.getText()

null 被返回。

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

textboxelement.getAttribute("attribute_name");

您将能够检索文本。

最后,正如你提到的without pressing a key like ENTER because it might close this dialog window这就是文本在 DOM Tree 中的容纳方式 Selenium 和你的 Automation Script 通过findElement()findElements()

查找

关于java - 验证输入文本中输入的文本 - Selenium,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48018972/

相关文章:

angularjs - Selenium Webdriver和angular e2e有什么区别?何时应分别使用?

java - 如何创建仅包含偶数的数组的副本?

java - 注释处理器是否可以访问上一轮生成的类型?

java - Idea Intellij拆箱警告似乎不是基于数据流分析

javascript - 如何让附加元素成为图像的高度

html - 如何使用 bash 脚本将文本转换为 html 字符代码?

java - 如何在获取元素之前等待页面加载?

java - 对象 TemplatesPlugin 不是包 securesocial.controllers 的成员

php - 将 HTML-PHP 表导出/下载到 Excel 文件

c# - Chrome 打开一瞬间然后使用 selenium webdriver 关闭