【问题标题】: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");
}
}