使用 CodeDui 进行跨浏览器测试

本文关键字:浏览器 测试 CodeDui 使用 | 更新日期: 2023-09-27 18:36:53

我在使用 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 时出错"。如何解决此问题?我也安装了硒组件。如果我删除此行,我会收到不同的错误,例如"找不到浏览器"...请帮忙。

使用 CodeDui 进行跨浏览器测试

开箱即用的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

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

还有其他

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

尝试

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 应用程序设置为浏览器窗口,您可以打开并准备好一个应用程序,播放引擎应该可以找到它。我发现这在处理测试时很有帮助(在IE中)。

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

干杯!

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

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

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