【发布时间】:2016-12-26 06:48:58
【问题描述】:
使用 selenium,当尝试在登录表单中输入用户名和密码时,有时会在同一字段中输入文本。用户名和密码具有唯一标识符。
对于发送密钥,完成以下步骤。
sendKeys(By.id("login_username"), "abc");
sendKeys(By.id("login_password"), "efg");
public void sendKeys(By locator, String text) {
WebElement element = findElement(locator);
if(element != null) {
element.clear();
element.sendKeys();
}
}
public WebElement findElement(By locator) {
return wait(org.openqa.selenium.support.ui.ExpectedConditions.presenceOfElementLocated(locator));
}
public WebElement wait(ExpectedCondition<WebElement> condition) {
Wait<WebDriver> wait = new FluentWait<WebDriver>(driver).pollingEvery(1, TimeUnit.SECONDS)
.withTimeout(60, TimeUnit.SECONDS)
.ignoreAll(Arrays.asList(NoSuchElementException.class, TimeoutException.class));
return wait.until(condition);
}
但不知何故,当输入文本时,用户名和密码文本都被输入到密码字段中。这并不总是发生。无法理解什么可能出错或检查什么。任何建议...
platform: Ubuntu 16.04.1 LTS 64-bit
chromedriver version: 2.25
chrome browser version: 55.0.2883.87
提前致谢。
【问题讨论】:
-
给我们你使用的定位器和页面 URL
-
页面 URL 是内部的。用户名 id = login_username / 密码 id = login_password
-
添加一些你的代码被剪断。怎么样,你正在尝试定位和
html以及 -
如何获取定位器?
driver.findElement(By.id("login_username"))
标签: java selenium selenium-webdriver selenium-chromedriver ubuntu-16.04