即使在键入新值后,文本框的值属性仍保留旧值

Value attribute of a text box retains old value even after new value has been keyed in

这是 HTML 我在表单上的文本框:

<input type="text" onblur="javascript:itemLostFocus('18A3461989AC0244E050A20AB17C4671');" onkeydown="javascript:itemChanging('18A3461989AC0244E050A20AB17C4671');" value="972" name="18A3461989AC0244E050A20AB17C4671" maxlength="3" size="3"/>

我接下来要做的是将文本框输入从 972 更新为 123。现在,如果我使用 Selenium WebDriver 的 getAttribute("value") 方法检查同一文本框的值属性,它仍然显示 972 而不是123.

我应该寻找什么属性来检索值 123?

因为 Selenium WebDriver 执行得如此之快,当您更新输入值时,您的 getAttribute("value") 方法在您的输入有机会更新之前就已经执行了。

在您的 BasePage 中您需要 waitFor boolean

protected void waitFor(BooleanCondition condition) {
    waitFor(condition, "(none)");
}

并且在您的对象页面中,您需要在更新输入之后和调用 getAttribute("value")

之前调用 waitFor 方法
public ObjectPage readValue(String value) {
    // whatever update happens
    waitFor(Conditions.elementIsNotDisplayed("#waiting_dialog"));
    return this;
}