有没有办法等待SendKeys()完成?

时间:2019-03-28 12:25:59

标签: c# selenium saucelabs

当前,在我们的框架中,我们有一个执行SendKeys的函数。在实际触发SendKeys之前,我们请求该值,在sendkeys之后,我们检查该值是否已更改,以触发javascript函数来设置字段的值。这是为了防止SendKeys方法无法正常工作(我们有一个特殊的情况)。

事情是这样,一切都发生得如此之快,以至于它在SendKeys方法之后请求字段值时,它并没有改变,因此无论如何都会触发javascript函数。

有什么办法可以避免这种情况,而不必在其中放入Thread.Sleep()?

1 个答案:

答案 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");
    }
}