我正在尝试将文本输入到编辑框中,但有时它只输入文本的一半(它无法输入前几个字符)
即。以下代码enterFirstName("12345678901234567890123456789012345678901")
仅输入30
左右而不是41
By firstNameEditbox = By.id("firstName");
public void enterFirstName(String firstName){
WebDriverWait wait = new WebDriverWait(driver, timeout);
element = wait.until(ExpectedConditions.presenceOfElementLocated(identifier));
wait.until(ExpectedConditions.visibilityOf(element));
element.sendKeys(firstName);
findElementWithWait(firstNameEditbox).
}
网址: https://mpower.tvo.org/educators/#/signup/
WebDriver版本: 3.5.2
浏览器:Chrome 58.0.3029.110(64位)
Chrome驱动程序版本: 2.26.436382
知道为什么会发生这种情况或如何解决这个问题?
答案 0 :(得分:0)
要输入长文本,我通常使用js来提高性能和使用:
public boolean setValue(String text) {
logger.info(String.format("<%s(%s) set value '%s'", el.getTagName(), el.getText(), text));
try {
JavascriptExecutor js = (JavascriptExecutor) webElementFinder.getDriver();
js.executeScript("arguments[0].value = arguments[1];",
waitForElementVisible(config.getBrowserElementFinderTimeout()), text);
return true;
} catch (TimeoutException e) {
logger.warn(e.getMessage());
logger.warn(
String.format("<%s(%s) Element not visible within timeout period", el.getTagName(), el.getText()));
return false;
}
}