当前,在我们的框架中,我们有一个执行SendKeys的函数。在实际触发SendKeys之前,我们请求该值,在sendkeys之后,我们检查该值是否已更改,以触发javascript函数来设置字段的值。这是为了防止SendKeys方法无法正常工作(我们有一个特殊的情况)。
事情是这样,一切都发生得如此之快,以至于它在SendKeys方法之后请求字段值时,它并没有改变,因此无论如何都会触发javascript函数。
有什么办法可以避免这种情况,而不必在其中放入Thread.Sleep()?
答案 0 :(得分:0)
或者,您可以尝试Actions
类发送文本,请参见下面的Java代码段:
public static void enterTextboxValue(WebDriver driver, WebElement element, String value) {
Actions navigator = new Actions(driver);
navigator.click(element).sendKeys(Keys.END).keyDown(Keys.SHIFT).sendKeys(Keys.HOME).keyUp(Keys.SHIFT)
.sendKeys(Keys.BACK_SPACE).sendKeys(value).perform();
if (element.getAttribute("value").contains(value)) {
System.out.println("Value [ " + value + " ] entered");
} else {
System.out.println("Unable to enter the value");
}
}