私は4つの選択肢でフォームをテストしています。最初のものを選択すると、値に応じてajax呼び出しが行われ、次の選択に移ります。しかし、ほとんどの場合私はStaleElementReferenceExceptionを取得しています。 FluentWaitと私のカスタム予想される条件を実装する - 私は選択がwebelementを取得するコードを同じFluentWaitここセレンStaleElementReferenceException ajaxオプションselect
FluentWait<WebDriver> wait = new FluentWait<WebDriver>(webdriver).withTimeout(10, TimeUnit.SECONDS)
.pollingEvery(2, TimeUnit.MILLISECONDS)
.ignoring(StaleElementReferenceException.class)
.ignoring(NoSuchElementException.class);
をされて使用して
- 私が移入されることをテストし、3番目の要素を選択します。
WebElement brand= wait.until(ExpectedConditions.elementToBeClickable(By.id("brand")));
Select selectBrand= new Select(brand);
wait.until(new SelectCondition(selectBrand));
marcaSelect.selectByIndex(2);
WebElement model= wait.until(ExpectedConditions.elementToBeClickable(By.id("model")));
Select modelSelect = new Select(model);
wait.until(new SelectCondition(modelSelect));
modeloSelect.selectByIndex(2);
マイカスタム期待条件セレンwebdriverを3.3.1、JSF 2.2はJava 1.7、クロムと
class SelectCondition implements ExpectedCondition{
Select select ;
public SelectCondition(Select select){
this.select = select;
}
public Boolean apply(Object arg0) {
return this.select.getOptions().size() > 1 ;
}
}
イム・テスト、特定のラインはあなたにStaleEelementExceptionを与える
日食? – kushal
this.select.getOptions()。size()> 1;を返します。 – jckhan