Когда я бегу по циклу For, я могу выполнить итерацию только один раз, без «значения», отображаемого как устаревшее. Что происходит, мне нужно выбрать значение из первого раскрывающегося списка, чтобы заполнить параметры для второго.
Я попытался настроить ссылки на элементы так, чтобы они не отображались как устаревшие.
//Order Type dropdown menu
String OrderTypeDropDown = "//*[@id='OrderTypeId']";
IWebElement drpOrderType = driver.FindElement(By.XPath(OrderTypeDropDown));
//Select the order type dropdown
SelectElement select = new SelectElement(drpOrderType);
//Make a list of all order type dropdown options
IList<IWebElement> elements = select.Options;
//Itterate through all the options in the order type dropdown
foreach (IWebElement value in elements)
{
//Click the option
value.Click();
//Print out the option
Console.WriteLine(value.Text);
//Sleep
Thread.Sleep(3000);
//Change Type dropdown menu stale element reference setup
String RequestChangeDropDown = "//*[@id='RequestedChange']";
IWebElement drpChangeType = driver.FindElement(By.XPath(RequestChangeDropDown));
//Select the Requested Change dropdown
SelectElement drpSelect = new SelectElement(drpChangeType);
driver.FindElement(By.XPath(RequestChangeDropDown)).Click();
//Make a list of all Requested Change types
IList<IWebElement> change = drpSelect.Options;
foreach (IWebElement option in change)
{
Console.WriteLine(option.Text);
}
}
Сообщение об ошибке: OpenQA.Selenium.StaleElementReferenceException: устаревшая ссылка на элемент: element isне прикреплен к документу страницы (информация о сеансе: chrome = 77.0.3865.90) Трассировка стека: RemoteWebDriver.UnpackAndThrowOnError (ответ errorResponse) RemoteWebDriver.Execute (параметры строки stringCommandToExecute, Dictionary`2)