Ошибка staleElementReference в классе действий - PullRequest
0 голосов
/ 28 ноября 2018

Поскольку мы используем класс действия для обычно события Click.Почему-то я получаю исключение при каждом использовании класса действий.Он генерирует исключение StaleElementReference для каждого метода действия, не работает для одного экземпляра.

Элемент не может щелкать во время отладки.Когда я заменил его простым методом Click (), он работал нормально.Но я не могу использовать метод щелчка, основанный на какой-то другой исключительной зависимости.

Что могло пойти не так,

using OpenQA.Selenium.Interactions;

Actions action = new Actions(driver);
action.MoveToElement(WebElement).Click().Perform();

Я что-то упустил?

Ответы [ 2 ]

0 голосов
/ 29 ноября 2018

Вам нужно снова получить элемент (если он сейчас даже активен).

IWebElement WebElement;
...

By byLocator = By.Id("myElementId");
WebElement = driver.FindElement(byLocator);
Actions action = new Actions(driver);
action.MoveToElement(WebElement).Click().Perform();
0 голосов
/ 28 ноября 2018

Элемент, к которому вы пытаетесь получить доступ, больше не отображается на странице.Элемент все еще может находиться на странице, но вы, возможно, переместились по всей странице после нахождения элемента, означающего, что это новая версия элемента, к которому драйвер пытается получить доступ, а старая исчезла.

Dodriver.findElement снова и затем используйте действия, чтобы перейти, если вы уверены, что элемент все еще отображается.

...