WebDriver.Wait 指定された要素を待機していません
クエリ:
コードが待機しようとしていますテキストコンテンツを取得する前の要素の外観。コードをステップ実行すると、コードは適切に機能します。ただし、ブレークポイントなしで実行すると、待機がバイパスされているように見え、例外がスローされます。
待機が無視されるのはなぜですか?
コード スニペット:
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(30)); IWebElement message = wait.Until(driver => driver.FindElement(By.ClassName("block-ui-message"))); string messageText = message.Text;
応答:
別のアプローチは、WebDriverWait の ElementIsVisible() メソッドを、変更された Locator Strategy と組み合わせて使用することです。
string messageText = new WebDriverWait(driver, TimeSpan.FromSeconds(30)).Until(ExpectedConditions.ElementIsVisible(By.ClassName("block-ui-message"))).GetAttribute("innerHTML");
NuGet で DotNetSeleniumExtras.WaitHelpers を使用する:
SeleniumExtras を使用している場合、およびWaitHelpers の場合、コードは次のように変更できます。以下:
string messageText = new WebDriverWait(driver, TimeSpan.FromSeconds(10)).Until(SeleniumExtras.WaitHelpers.ExpectedConditions.ElementIsVisible(By.ClassName("block-ui-message"))).GetAttribute("innerHTML");
以上がデバッグせずに実行すると WebDriverWait が無視されるように見えるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。