ここでは何らかの状況に陥っています。StaleElementReference例外のデバッグ - Selenium WebDriver
私はeditNewUser()関数を持っています。
UserNameは、ユーザーの作成中に別の関数で値を取得するパブリック文字列変数です。
このスクリプトでは、ユーザーリストを含むページに移動します。リスト '要素'にすべてのユーザー名を格納し、ユーザー名と一致するテキストのリストの各要素を繰り返し処理します。
私のtest_runスクリプトでは、editNewUser()の後に他のメソッドを呼び出す必要があります。
このメソッドはifブロック内で次のコマンドを実行します。
if(el.getText().equals(UserName))
{
el.click();
wait.until(ExpectedConditions.visibilityOfElementLocated(editUserHeading));
driver.findElement(editUser).click();
WebElement status_Dropdown = driver.findElement(By.xpath("//select[@id='systemUser_status']"));
Select status = new Select(status_Dropdown);
status.selectByVisibleText("Enabled");
}
しかし、すぐに次のメソッドが呼び出されるように、それが実行を停止し、org.openqa.selenium.StaleElementReferenceException: Element not found in the cache - perhaps the page has changed since it was looked up
スタックトレースは、ラインif(el.getText().equals(UserName))
を指しスローされます。
ifブロック内のコマンドは実行されますが、この例外、イベントを受け取る理由を教えてください。
el.getText()。equals(UserName)条件trueリスト内の残りの要素の位置が変更されたり、ページが変更された可能性があります。これはセレンキャッシュには例外として見つかりません発生しました..これを達成している場合、条件が真であればループを解除する必要があります。 –