专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-963-0016      微信咨询  |  联系我们

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

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/2/14 0:40:57       共计:3645 浏览
我正在研究C#Selenium-WebDriver.发送密钥后,我想等几秒钟.我执行以下代码等待2秒钟.
			
  1. public static void press(params string[] keys)
  2. {
  3. foreach (string key in keys)
  4. {
  5. WebDriver.SwitchTo().ActiveElement().SendKeys(key);
  6. Thread.Sleep(TimeSpan.FromSeconds(2));
  7. }
  8. }

我称之为:

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

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

解决方法

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

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

			
  1. public void Wait(Func<IWebDriver,bool> condition,double delay)
  2. {
  3. var ignoredExceptions = new List<Type>() { typeof(StaleElementReferenceException) };
  4. var wait = new WebDriverWait(myWebDriver,TimeSpan.FromMilliseconds(delay)));
  5. wait.IgnoreExceptionTypes(ignoredExceptions.ToArray());
  6. wait.Until(condition);
  7. }
  8.  
  9. public void SelectionIsDoneDisplayingThings()
  10. {
  11. Wait(driver => driver.FindElements(By.ClassName("selection")).All(x => x.Displayed),250);
  12. }

版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:记录:c#中使用Selenium之五 页面加载等待及处理页面alert弹出层 | ·下一条:http请求response拦截(IIS)

Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有