c# – 我怎样才能让Selenium-WebDriver在sendkey之后等待几秒钟?

我正在研究C#Selenium-WebDriver.发送密钥后,我想等几秒钟.我执行以下代码等待2秒钟.
public static void press(params string[] keys)
{
       foreach (string key in keys) 
       { 
          WebDriver.SwitchTo().ActiveElement().SendKeys(key);
          Thread.Sleep(TimeSpan.FromSeconds(2));
       }
}

我称之为:

press(Keys.Tab,Keys.Tab,Keys.Tab);

它工作正常.哪一种更好?

解决方法

我会不惜一切代价避免使用类似的东西,因为它会减慢测试速度,但我遇到了一个我没有其他选择的情况.
public void Wait(double delay,double interval)
{
    // Causes the WebDriver to wait for at least a fixed delay
    var Now = DateTime.Now;
    var wait = new webdriverwait(myWebDriver,TimeSpan.FromMilliseconds(delay));
    wait.PollingInterval = TimeSpan.FromMilliseconds(interval);
    wait.Until(wd=> (DateTime.Now - Now) - TimeSpan.FromMilliseconds(delay) > TimeSpan.Zero);
}

以某种方式观察DOM总是更好,例如:

public void Wait(Func<IWebDriver,bool> condition,double delay)
{
    var ignoredExceptions = new List<Type>() { typeof(StaleElementReferenceException) };
    var wait = new webdriverwait(myWebDriver,TimeSpan.FromMilliseconds(delay)));
    wait.IgnoreExceptionTypes(ignoredExceptions.ToArray());
    wait.Until(condition);
}

public void SelectionIsDonedisplayingThings()
{
    Wait(driver => driver.FindElements(By.ClassName("selection")).All(x => x.displayed),250);
}

相关文章

C#项目进行IIS部署过程中报错及其一般解决方案_c#iis执行语句...
微信扫码登录PC端网站应用的案例(C#)_c# 微信扫码登录
原文地址:http://msdn.microsoft.com/en-us/magazine/cc163...
前言 随着近些年微服务的流行,有越来越多的开发者和团队所采...
最近因为比较忙,好久没有写博客了,这篇主要给大家分享一下...
在多核CPU在今天和不久的将来,计算机将拥有更多的内核,Mic...