【问题标题】:cross browser testing using codedui?使用 codedui 进行跨浏览器测试?
【发布时间】:2017-02-13 20:34:31
【问题描述】:

我在使用 codedui 进行跨浏览器测试时遇到问题。 使用下面的代码,

Process.Start("firefox", url);
BrowserWindow.CurrentBrowser = "firefox";
Browser = BrowserWindow.Launch(new System.Uri(url));
Keyboard.SendKeys("^{0}");

在 IE 中开发的所有代码。但现在我必须在 firefox 或 chrome 中执行代码。我将在 forefox 中执行代码。我在这里使用此代码

Browser = BrowserWindow.Launch(new System.Uri(url));

在这一行中出现“连接到 Firefox 时发生错误”之类的错误。如何解决这个问题?我也安装了 selenium 组件。如果我删除此行,我会收到不同的错误,例如“无法找到浏览器”...请帮助。

【问题讨论】:

    标签: c# .net cross-browser coded-ui-tests


    【解决方案1】:

    开箱即用的 Visual Studio 不支持跨浏览器 CodedUI 测试。

    您将需要安装 Selenium 组件以允许在 Visual Studio 中进行跨浏览器测试。

    可以在这里找到详细信息:

    http://blogs.msdn.com/b/visualstudioalm/archive/2012/10/30/introducing-cross-browser-testing-with-coded-ui-tests.aspx

    硒成分可以在这里找到:

    http://visualstudiogallery.msdn.microsoft.com/11cfc881-f8c9-4f96-b303-a2780156628d

    【讨论】:

    【解决方案2】:

    看起来 CodedUI 不支持在很多不同的浏览器上播放 http://msdn.microsoft.com/en-us/library/dd380742(VS.100).aspx

    还有一些其他工具 http://watin.org/ 就是其中之一,但我自己找不到任何可以真正解决您问题的工具。

    【讨论】:

      【解决方案3】:

      试试

      BrowserWindow.CurrentBrowser = "firefox";
      BrowserWindow WebApp;
      WebApp.CopyFrom(BrowserWindow.LaunchUrl(new System.Uri(url)));
      

      我设置了类似于以下内容并且效果很好(我手动编写所有代码,绕过 UIMap)。

      public class WebApp : BrowserWindow
      {
         private string _url;
      
         public WebApp(string url)
         {
            //define search properties using this keyword so the web application can be treated as a browser
            _url = url;
            BrowserWindow.CurrentBrowser = "Chrome";
            this.CopyFrom(BrowserWindow.Launch(new Uri(url));
         }
      }
      

      你可以重载构造函数,当然可以通过添加一个参数供浏览器使用或者是否启动浏览器。

      通过将 Web 应用程序设置为 BrowserWindow,您可以打开并准备好一个,播放引擎应该会找到它。我发现这在进行测试(在 IE 中)时很有帮助。

      提醒一下,您确实需要 Selenium 插件,并且该插件只能用于播放,不能用于录制。

      干杯!

      【讨论】:

        【解决方案4】:

        在我们的环境中,我们通过执行以下操作来设置 Launch() 方法:

        public void LaunchBrowser(string uri)
        {
            BrowserWindow.CurrentBrowser = "firefox";
            BrowserWindow myBrowser = BrowserWindow.Launch(new System.Uri(uri));
        }
        

        需要注意的一点是,如果后台已经有firefox进程在运行,WebDriver不会启动新的实例,所以请确保在调用LaunchBrowser()之前关闭所有的firefox实例。我发现有一些 Java 插件可以让它在后台运行,所以试着禁用那些你不需要的插件。如果您检查您的任务管理器并且是这种情况,另一个值得关注的地方是here.

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-02-26
          • 1970-01-01
          • 1970-01-01
          • 2019-05-02
          • 1970-01-01
          • 1970-01-01
          • 2012-08-03
          • 1970-01-01
          相关资源
          最近更新 更多