我可以单击用户名字段,但无法传递该字段中的值。面对下面的错误。
driver.get("xxxx");
WebDriverWait wait = new WebDriverWait(driver, 60);
WebElement username = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("xxxx")));
username.click();
username.sendKeys("xxxxxxxx");
我收到的错误-
处理命令时发生未知的服务器端错误。原始错误:未知错误:无法聚焦元素(会话信息:chrome=69.0.3497.100)
2条答案
按热度按时间j0pj023g1#
此错误消息。。。
…意味着 selenium 不能集中在所需的元素上。
调用
sendKeys()
而不是visibilityOfElementLocated()
你需要诱导webdriverwaitelementToBeClickable()
您可以使用以下任一定位器策略:id
:WebElement username = new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("#xxxx")));
username.click();
username.clear();
username.sendKeys("xxxxxxxx");
```
xpath
:其他注意事项
确保:
jdk升级到当前的JDK8U271级别。
selenium已升级到当前发布的版本3.141.59。
chromedriver更新为当前chromedriver v87.0版本。
chrome更新到当前的chrome 87.0版本(根据chromedriver v87.0发行说明)。
如果您的基本web客户端版本太旧,请卸载它并安装最新的ga和发布的web客户端版本。
tcbh2hod2#
您可以使用click()、clear()和sendkeys()组合,这对我很有用:
username.click();
username.clear();username.sendkeys("x")