我正在使用 Webdriver 中的发送键函数发送以下值:
WebElement inputField = driver.findElement(By.name("input"));
inputField.sendKeys("String of text");
这应该会在幕后触发一个 angularjs 函数,然后它会为我提供一个与已传递的文本字符串相匹配的值列表。
但是,在发送 key 后,此搜索并未显示在屏幕上。我还需要做些什么来允许这种互动吗?
最佳答案
这个方法对我有用:
public void enterTextReactJs(WebElement inputField, String value) {
((JavascriptExecutor) driver).executeScript("arguments[0].value = '"+value+"'", inputField);
((JavascriptExecutor) driver).executeScript("arguments[0]._valueTracker", inputField);
((JavascriptExecutor) driver).executeScript("arguments[0]._valueTracker.setValue('xxx')", inputField);
((JavascriptExecutor) driver).executeScript("arguments[0].dispatchEvent(new Event('input', { bubbles: true, simulated: true }))", inputField);
}
关于Java Selenium Webdriver - 将文本发送到字段不会触发 angularjs 搜索字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42767128/