【问题标题】:Is there a way to wait for SendKeys() to finish?有没有办法等待 SendKeys() 完成?
【发布时间】:2019-08-19 05:22:02
【问题描述】:

目前,在我们的框架中,我们有一个执行 SendKeys 的函数。在实际触发 SendKeys 之前,我们请求该值,在 sendkeys 之后,我们检查该值是否已更改,以触发 javascript 函数来设置字段的值。这是为了防止 SendKeys 方法不起作用(我们有一个特定的案例)。

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

有什么方法可以避免这种情况,而不涉及将 Thread.Sleep() 放入其中?

【问题讨论】:

  • 如何检查值是否发生了变化?发布您的代码。

标签: c# selenium saucelabs


【解决方案1】:

或者,你可以尝试Actions类发送文本,参考下面java sn -p:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-10-24
    • 1970-01-01
    • 2010-11-04
    • 2011-10-21
    • 2020-09-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多