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
Freigeben: 2025-01-03 19:55:40
Original
755 Leute haben es durchsucht

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;
Nach dem Login kopieren

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");
Nach dem Login kopieren

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");
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage