我在使用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组件。如果我删除这一行我会得到不同的错误,如“无法找到浏览器”...请帮助。
答案 0 :(得分:3)
开箱即用Visual Studio不支持跨浏览器CodedUI测试。
您将需要安装Selenium组件以允许在Visual Studio中进行跨浏览器测试。
有关详细信息,请访问:
Selenium组件可以在这里找到:
http://visualstudiogallery.msdn.microsoft.com/11cfc881-f8c9-4f96-b303-a2780156628d
答案 1 :(得分:0)
看起来CodedUI不支持在很多不同的浏览器http://msdn.microsoft.com/en-us/library/dd380742(VS.100).aspx
上播放还有一些其他工具http://watin.org/就是其中之一,但我找不到任何可以真正解决问题的工具。
答案 2 :(得分:0)
尝试
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插件,该插件仅适用于播放,而不适用于录制。
干杯!
答案 3 :(得分:0)
在我们的环境中,我们通过执行以下操作来设置Launch()方法:
public void LaunchBrowser(string uri)
{
BrowserWindow.CurrentBrowser = "firefox";
BrowserWindow myBrowser = BrowserWindow.Launch(new System.Uri(uri));
}
需要注意的一点是,如果后台运行的firefox进程已经运行,则WebDriver将不会启动新实例,因此请确保在调用LaunchBrowser()之前关闭所有firefox实例。我发现有些Java插件可以让它在后台运行,所以尝试禁用那些你不需要的插件。如果你检查你的任务管理器,那么另一个好看的地方就是here.