如何使用 C# 在 Selenium WebDriver 中等待警报?



如何将Selenium WebDriver设置为在接受警报之前等待警报而不是Thread.Sleep?

作为网站,有时加载非常慢,有时加载速度很快。

谢谢

您应该应用网络驱动程序等待警报正确出现。

var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(15));
wait.Until(SeleniumExtras.WaitHelpers.ExpectedConditions.AlertIsPresent());

或者编写一个布尔函数来检查警报是否存在并使用它进行等待

bool IsAlertShown(WebDriver driver) {
try {
driver.SwitchTo().Alert();
} catch(NoAlertPresentException e) {
return false;
}
return true;
}

按如下方式使用

var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(20));
wait.Until(driver => IsAlertShown(driver));

您可以使用"WebDriverWait">

IWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(3))
IWebElement element = wait.Until(driver => driver.FindElement(By.Name("q")));

https://selenium.dev/selenium/docs/api/dotnet/html/T_OpenQA_Selenium_Support_UI_WebDriverWait.htm

相关内容

  • 没有找到相关文章

最新更新