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() 方法与修改后的定位器策略结合使用:
string messageText = new WebDriverWait(driver, TimeSpan.FromSeconds(30)).Until(ExpectedConditions.ElementIsVisible(By.ClassName("block-ui-message"))).GetAttribute("innerHTML");
将 DotNetSeleniumExtras.WaitHelpers 与 NuGet 结合使用:
如果使用 SeleniumExtras 和 WaitHelpers ,代码可以修改为如下:
string messageText = new WebDriverWait(driver, TimeSpan.FromSeconds(10)).Until(SeleniumExtras.WaitHelpers.ExpectedConditions.ElementIsVisible(By.ClassName("block-ui-message"))).GetAttribute("innerHTML");
以上是为什么我的 WebDriverWait 在不调试的情况下运行时似乎被忽略了?的详细内容。更多信息请关注PHP中文网其他相关文章!