Ho trovato che in C#
se si utilizza lo WebDriverWait class
o lo DefaultWait class
, in entrambi i casi il metodo IgnoreExceptionTypes
sembra non funzionare.IgnoreExceptionTypes non funziona (C# Webdriver)
I.e. in entrambi i casi quando si esegue contro la mia pagina viene lanciato un numero StaleElementReferenceException
nonostante io stia istruendo il codice per ignorare queste eccezioni.
WebDriverWait
esempio:
public void WaitElementToBeClickable(IWebElement element)
{
var wait = new WebDriverWait(Driver, TimeSpan.FromSeconds(60));
wait.IgnoreExceptionTypes(typeof(NoSuchElementException), typeof(StaleElementReferenceException));
wait.Until(ExpectedConditions.ElementToBeClickable(element));
}
DefaultWait esempio:
public IWebElement SafeWaitForDisplayed(IWebElement webElement) {
var w = new DefaultWait<IWebElement>(webElement);
w.Timeout = TimeSpan.FromSeconds(30);
w.IgnoreExceptionTypes(typeof(NoSuchElementException), typeof(StaleElementReferenceException));
return w.Until(ctx =>
{
var elem = webElement;
if (elem.Displayed)
return elem;
else
return null;
});
}
Qualsiasi suggerimento ben accetto. Sembra che ci sia molto poco in rete sull'uso di questo particolare metodo e altri hanno trovato che non funziona anche senza soluzioni alternative suggerite.