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