我正在使用Nunit进行硒测试。我正在使用Nunit AssertionHelper类。
所以我在C#文件中写了以下条件
Expect(() => page.ToastTitle, Is.EqualTo("Ok").After(1.Seconds()), "Totally wrong");
这可以按预期工作,但是我希望在获得相同条件的Ok消息后,添加一些操作。
有可能吗?任何想法,我怎么可以实现这一点?
答案 0 :(得分:0)
由于您将页面标题用作可以继续进行测试的信号,因此您将需要使用WebDriverWait对象:
var timeToWait = TimeSpan.FromSeconds(1);
var wait = new WebDriverWait(driver, timeToWait);
wait.Until(d => page.ToastTitle == "Ok");
// Do the next thing in your test
如果一秒钟后吐司标题不是"Ok"
,则Selenium会抛出WebDriverTimeoutException
,这将使测试失败。
扩展方法很容易编写,并且非常方便:
public static class WebDriverExtensions
{
public static void WaitUntil<TResult>(this IWebDriver driver, Func<IWebDriver, TResult> condition, int secondsToWait = 30)
{
var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(secondsToWait));
wait.Until(condition);
}
}
这使得等待使用起来更加直观:
driver.WaitUntil(d => page.ToastTitle = "Ok");
// Perform the next step in your test.