Heim >Backend-Entwicklung >C++ >Warum wartet mein WebDriverWait nicht, wenn es ohne Haltepunkte ausgeführt wird?
WebDriverWait wartet nicht wie erwartet
Beim Versuch, den Text von einem Element abzurufen, wird eine Wartezeit implementiert, um sicherzustellen, dass das Element vorher sichtbar ist Abruf. Allerdings scheint die Wartezeit umgangen zu werden, wenn der Code ohne Haltepunkte ausgeführt wird, was zu einer Ausnahme führt.
Erklärung des Problems
Der bereitgestellte Codeausschnitt verwendet die FindElement-Methode von die WebDriverWait-Klasse, die eine Ausnahme auslöst, wenn das Element nicht innerhalb des angegebenen Timeout-Zeitraums (in diesem Fall 30 Sekunden) gefunden werden kann. Diese Unmittelbarkeit könnte darauf zurückzuführen sein, dass das Element bis zum Ablauf der Wartezeit nicht sichtbar oder geladen ist.
Lösung
Alternativ können Sie die ElementIsVisible-Bedingung von verwenden die ExpectedConditions-Klasse in Kombination mit dem WebDriverWait. Bei diesem Ansatz wird gewartet, bis das Element die Bedingung erfüllt (in diesem Fall sichtbar ist). Darüber hinaus können Sie die GetAttribute-Methode verwenden, um das innerHTML des Elements anstelle der Text-Eigenschaft abzurufen.
Hier ist ein Beispiel für die Verwendung der ElementIsVisible-Bedingung:
string messageText = new WebDriverWait(driver, TimeSpan.FromSeconds(10)).Until(ExpectedConditions.ElementIsVisible(By.ClassName("block-ui-message"))).GetAttribute("innerHTML");
DotNetSeleniumExtras.WaitHelpers Option
Wenn Sie angestellt sind Mit SeleniumExtras.WaitHelpers über NuGet können Sie die ElementIsVisible-Bedingung aus der ExpectedConditions-Klasse wie folgt nutzen:
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 wartet mein WebDriverWait nicht, wenn es ohne Haltepunkte ausgeführt wird?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!