运行 WatiN 测试时出现 InteropServices.COMException
当我在构建服务器上运行 WatiN 测试时,它们都会抛出此 InteropServices.COMException:
MyTestClassName.MyTestMethodName: System.Runtime.InteropServices.COMException :由于以下错误,从 IClassFactory 创建 CLSID {0002DF01-0000-0000-C000-000000000046} 的 COM 组件实例失败:80004005。
无论我运行它们,我都会得到相同的结果TeamCity 或我使用 NUnit GUI (2.5) 以管理员身份在服务器上手动运行它们。
这是一些示例代码:
[TestFixture]
public class MyTestClassName
{
private string pageUrl;
[TestFixtureSetUp]
public void TestFixtureSetUp()
{
pageUrl = ConfigurationManager.AppSettings["SiteURL"] + "/Pages/MyPage.aspx";
Settings.MakeNewIeInstanceVisible = false;
}
[Test]
public void MyTestMethodName()
{
using (var ie = new IE(pageUrl))
{
ie.SelectList(new Regex(@"^*DropDownList1*$")).Option("TheOption").Select();
ie.SelectList(new Regex(@"^*DropDownList2*$")).Option("AnOption").Select();
ie.SelectList(new Regex(@"^*DropDownList3*$")).Option("OtherOption").Select();
}
}
}
有什么想法吗?
/乔金
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
尝试以管理员身份运行 Visual Studio。
Try running Visual Studio as Administrator.
我也遇到了同样的问题,但对我来说更奇怪。
我有一个服务器仅用于“UI 测试”,并且对于许多应用程序 de WatiN 测试运行没有任何问题。
此错误仅发生在一个应用程序中,并且仅发生在 CruiseControl(使用 nant)中,但在使用 NUnitGUI 运行测试时不会发生...
今天早上我终于找到了解决方案:我替换了所有调用
new IE();
到新 IE(true)
WatiN 发行说明 并且不再出现错误。I also meet the same problem but more strange for me.
I've got a server only for "UI testing" and for many application de WatiN test runs without any problem.
This error only happens for one application and only in CruiseControl (with nant) but not when runing the test with NUnitGUI...
I Finnaly found a solution this morning: I replaced all my call
new IE();
tonew IE(true)
WatiN release note And didn't get the error anymore.另一个修复是“在 IE 中启用保护模式”,如所述 这里
Another fix is to "Enable Protected mode in IE" like described here
每次 WatiN 调用 IE.Quit 时,IE 都会停止响应,然后尝试恢复。 以管理员身份运行解决了我的问题。
Every time IE.Quit was called by WatiN IE would stop responding and then try to recover. Run as admin fixed the problem for me.
另一条评论说:
实际上是NUnit需要以管理员身份运行(至少在Windows 7中),但想法是正确的。
Another comment says:
It is actually NUnit that needs to be run as administrator (at least in Windows 7), but the thinking is correct.
我认为选择列表尚未完全加载和准备就绪,这是此问题中描述的同一问题的另一个症状:
访问被拒绝错误(Visual Studio 和 WatiN)
I think that the select list is not yet fully loaded and ready, and this is another symptom of the same problem described in this question:
Access denied error ( Visual Studio and WatiN )