<md-datepicker ng-model="mc.date.from" required="" md-val="">
<span class="input-group date" style="width:144px">
<input size="16" type="text"
class="form-control"
autocomplete="off">
<span class="input-group-btn">
<button class="btn btn-default" tabindex="-1" >
<i class="glyphicon glyphicon-calendar"></i>
</button>
</span>
</span>
</md-datepicker>
У меня есть компонент AngularJs, который содержит input
типа text
. Я использовал следующий код для ввода date
. В большинстве случаев это не помогает, когда я запускаю тест без головы.
WebElement fromDate = driver.findElement(
By.tagName("md-datepicker"))
.findElement(By.tagName("input"));
if (fromDate.getAttribute("value").length() > 0) {
fromDate.clear();
}
fromDate.sendKeys(startDate);
Есть несколько других inputs
перед datepicker
, которые я заполняю. Но когда тест достигает datepciker
, он не проходит, потому что не может его найти.
Как можно решить эту проблему?
Обновление
Я использовал этот метод прямо перед кодом выше.
public static void waitUntilVisible(By locator) {
final long startTime = System.currentTimeMillis();
final Duration duration = Duration.ofSeconds(2);
Wait<WebDriver> wait = new FluentWait<WebDriver>(driver)
.pollingEvery(duration)
.ignoring(StaleElementReferenceException.class);
while ((System.currentTimeMillis() - startTime) < 91000) {
try {
wait.until(ExpectedConditions.presenceOfElementLocated(locator));
break;
} catch (StaleElementReferenceException e) {
log.info("", e);
}
}
}