即使在键入新值后,文本框的值属性仍保留旧值
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;
}
这是 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;
}