c# - test studio - 新浏览器失败

标签 c# testing telerik-test-studio

我正在使用 Teleriks Test Studio 的试用版,但在我的 Silverlight 应用程序中遇到了问题。我的测试是登录,然后尝试从数据源添加 100 个新用户。我已经多次运行测试,每次失败时,它似乎都在做同样的事情:它被 Unable to locate element 错误卡住了,但我的理解是,如果它失败了,它应该重新开始测试。然而,这种情况并非如此。相反,它只是坐在那里,无法找到任何其他元素

我应该说这是一个不一致的错误;这总是在测试的不同阶段。有时它会完美地运行 10 个测试,然后下一个会失败。

有没有办法在失败时导致关闭当前浏览器并打开新浏览器,或者甚至添加一个关闭和打开浏览器的步骤作为第一步?当浏览器没有响应时,如何关闭并重新打开浏览器?

最佳答案

来自 Telerik 的帮助论坛:

[Setup]
if (Manager.Current.Browsers.Count > 1)
{
   Helpers.KillBrowserProcesses(_browserType);
}

if (ActiveBrowser == null || !Process.GetProcessesByName(_processName).Any())
{
   var retries = 0;
   bool browserOpened;
   do
   {
      try
      {
         browserOpened = true;
         Manager.LaunchNewBrowser(_browserType, true, ProcessWindowStyle.Maximized);
         retries = 0;
      }
      catch
      {
         retries++;
         browserOpened = false;
         Console.WriteLine("Restarting the browser. Retry {0} of {1}", retries,
                                      Configuration.Instance.BrowserOpeningRetries);
         if (Manager.Browsers.Count <= 0) continue;
            Helpers.KillBrowserProcesses(_browserType);
            //foreach (var browser in Manager.Browsers)
            //    browser.Close();
            //if (ActiveBrowser != null)
            //    ActiveBrowser.Close();
      }
   } 
   while (retries < Configuration.Instance.BrowserOpeningRetries && browserOpened == false);
}

public static void KillBrowserProcesses(BrowserType browserType)
{
   var browserProcesses = new Process[] {};
   switch (browserType)
   {
      case BrowserType.FireFox:
         browserProcesses = Process.GetProcessesByName("firefox");
         break;
      case BrowserType.InternetExplorer:
         browserProcesses = Process.GetProcessesByName("iexplore");
         break;
   }
   foreach (var browserProcess in browserProcesses)
   {
      try
      {
         browserProcess.Kill();
         browserProcess.WaitForExit();
      }
      catch
      {}
   }
}

关于c# - test studio - 新浏览器失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16981584/

相关文章:

C# 返回 ConcurrentBag 的副本

c# - 如何在 C# struct 中声明和使用固定大小的 char 缓冲区

c# - ASP.NET 4.5.2 MVC 项目模板中的身份验证系统是否适合在实际应用程序中使用?

c++ - 运行测试时如何考虑依赖关系?

testing - 如何创建一个并发线程组,其中给定的并发用户在给定的时间内只点击一次?

Telerik Test Studio - 运行此测试按钮已禁用

c# - Json.NET 中的 RawJSON 对象

java - SonarQube 不显示单元测试结果

testing - 在模拟器上运行 Telerik Test Studio 测试