Используя Selenium WebDriver в Sun JDK 1.6, я PageObject предоставляю такой метод
public void function selectDate()
{
//The HTML Calendar element should be already opened by the caller.
//Line X
this.driver.findElement(By.cssSelector(/*Selector Statement*/)).click();
//Will cause the founded element disappeared.
}
И я бы хотел, чтобы этот метод был повторным. Это означает, что я могу вызывать его много раз в методе вызова:
public void function caller()
{
this.driver.findElement(By.
cssSelector(/*Selector for showing the HTML Calendar*/)).click();
po.selectDate();
this.driver.findElement(By.
cssSelector(/*Selector for showing the ANOTHER Calendar*/)).click();
po.selectDate();
}
Но возникнет исключение
Element is not currently visible and so may not be interacted with;
(... Stack trace...)
at Line X
Трассировка стека показывает, что ошибка вызвана строкой X в методе selectDate()
.
Если я вызову метод selectDate()
только один раз, исключение не будет выдано.
Единственная причина, по которой я могу догадаться, заключается в том, что WebDriver будет «кэшировать» результаты выбора,
поэтому, если я выберу тот же элемент, используя тот же селектор CSS, он найдет старый и исчезнувший. Я прав ? Или я кое-что пропустил?
Спасибо.