Ich habe die folgende benutzerdefinierte RetryAttribute
aus diesem Beitrag genommen: NUnit retry dynamic attribute. Es funktioniert gut, aber wenn ich einen Timeout-Fehler in Selenium bekomme, funktioniert es nicht.C# - Selen - Retry Attribut arbeitet nicht mit Selenium Timeout
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(5));
wait.Until(ExpectedConditions.ElementToBeClickable(element));
Retry benutzerdefiniertes Attribut:
/// <summary>
/// RetryDynamicAttribute may be applied to test case in order
/// to run it multiple times based on app setting.
/// </summary>
[AttributeUsage(AttributeTargets.Method, AllowMultiple = false, Inherited = false)]
public class RetryDynamicAttribute : RetryAttribute {
private const int DEFAULT_TRIES = 1;
static Lazy<int> numberOfRetries = new Lazy<int>(() => {
int count = 0;
return int.TryParse(ConfigurationManager.AppSettings["retryTest"], out count) ? count : DEFAULT_TRIES;
});
public RetryDynamicAttribute() :
base(numberOfRetries.Value) {
}
}
Und dann das benutzerdefinierte Attribut anwenden.
[Test]
[RetryDynamic]
public void Test() {
//....
}
Wie kann das gelöst werden?