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

时间:2015-06-16 13:24:14

标签: java selenium selenium-webdriver webdriver

这是我在表单上的文本框中使用的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")方法检查同一文本框的value属性,它仍然显示972而不是123。

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

1 个答案:

答案 0 :(得分:1)

由于Selenium WebDriver执行得如此之快,当您更新输入值时,您的getAttribute("value")方法正在执行,然后您的输入才有机会更新。

在您的BasePage中,您需要waitFor boolean

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

在您的对象页面中,您需要在更新输入后和致电waitFor之前调用getAttribute("value")方法

public ObjectPage readValue(String value) {
    // whatever update happens
    waitFor(Conditions.elementIsNotDisplayed("#waiting_dialog"));
    return this;
}