Laden...

UI Test mit Selenium SelectByText: Select wählt manchmal anderen Wert aus

Erstellt von Palin vor 7 Jahren Letzter Beitrag vor 7 Jahren 1.060 Views
P
Palin Themenstarter:in
1.090 Beiträge seit 2011
vor 7 Jahren
UI Test mit Selenium SelectByText: Select wählt manchmal anderen Wert aus

Hallo Zusammen,

aktuell hab ich bei den UI Tests mit Selenium (WebDriver), das Problem, das das SelectByText nicht zuverlässig funktioniert. Wenn ich es im Debugger ausführe klappt es ohne Probleme (Test Grün).

Wenn ich es normal ausführe, kommt es ab und zu dazu, das ein anderer Wert ausgewählt wird.

Ich hatte mir jetzt gedacht, das es ein Timing Problem sein könnte und mir eine Extension Methode geschrieben. In der ich prüfe ob der Text gesetzt ist und wenn nicht nach kurzen Warten noch mal Probiere.

  public static void SetSelectedOptionText(this IWebDriver driver, By by , String text )
        {
            for (int second = 0; ; second++)
            {
                if (second >= 60) Assert.Fail("timeout");
                try
                {
                    var select = new SelectElement(driver.FindElement(by));

                    select.SelectByText(text);

                    var selectedtext = select.SelectedOption.Text;
                    if (selectedtext == text) break;

                }
                catch (Exception)
                { }
                System.Threading.Thread.Sleep(1000);
            }
        }

Dadurch taucht, das Problem aber einfach nur nicht so oft auf. Wobei der Text ja gesetzt sein sollte ich prüfe es ja. Jemand eine Idee wie ich das Problem lösen kann.

p.s.
Benutzt hier jemand Selenium ausführlich? Für mich wirkt es bis jetzt nicht sehr Stabil, kann aber auch sein das ich einfach was falsch mache.

Sollte man mal gelesen haben:

Clean Code Developer
Entwurfsmuster
Anti-Pattern