Heim >Backend-Entwicklung >C++ >Warum scheint mein WebDriverWait ignoriert zu werden, wenn er ohne Debugging ausgeführt wird?

Warum scheint mein WebDriverWait ignoriert zu werden, wenn er ohne Debugging ausgeführt wird?

Linda Hamilton
Linda HamiltonOriginal
2025-01-03 19:55:40787Durchsuche

Why Does My WebDriverWait Seem to Be Ignored When Running Without Debugging?

WebDriver.Wait wartet nicht auf angegebenes Element

Abfrage:

Mein Code versucht zu warten das Aussehen eines Elements vor dem Abrufen seines Textinhalts. Während Sie den Code schrittweise durchgehen, funktioniert er ordnungsgemäß. Wenn es jedoch ohne Haltepunkte ausgeführt wird, scheint die Wartezeit umgangen zu werden und es wird eine Ausnahme ausgelöst.

Warum wird die Wartezeit vernachlässigt?

Codeausschnitt:

WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(30));
IWebElement message = wait.Until(driver => driver.FindElement(By.ClassName("block-ui-message")));
string messageText = message.Text;

Antwort:

Ein alternativer Ansatz ist die Verwendung Die ElementIsVisible()-Methode von WebDriverWait in Kombination mit einer modifizierten Locator-Strategie:

string messageText = new WebDriverWait(driver, TimeSpan.FromSeconds(30)).Until(ExpectedConditions.ElementIsVisible(By.ClassName("block-ui-message"))).GetAttribute("innerHTML");

Verwendung von DotNetSeleniumExtras.WaitHelpers mit NuGet:

Bei Verwendung von SeleniumExtras und WaitHelpers kann der Code wie folgt geändert werden:

string messageText = new WebDriverWait(driver, TimeSpan.FromSeconds(10)).Until(SeleniumExtras.WaitHelpers.ExpectedConditions.ElementIsVisible(By.ClassName("block-ui-message"))).GetAttribute("innerHTML");

Das obige ist der detaillierte Inhalt vonWarum scheint mein WebDriverWait ignoriert zu werden, wenn er ohne Debugging ausgeführt wird?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn