开始使用Watin

4

我正在尝试进行快速启动示例,在VS2010中使用NuGet引入参考,我从网页上爬取样例代码,我看到我的NUnit会话窗口,我点击绿色箭头,但浏览器没有被调用(没有启动)。我错过了什么吗?

using System;  
using NUnit.Framework;  
using WatiN.Core;

namespace FirstWatinProject  
{  
    [TestFixture]  
    public class Class1  
    {  

        [Test]
        [STAThread]
        public void SearchForWatiNOnGoogle()
        {
            using (var browser = new IE("http://www.google.com"))
            {
                browser.TextField(Find.ByName("q")).TypeText("WatiN"); 
                browser.Button(Find.ByName("btnK")).Click(); 
                Assert.IsTrue(browser.ContainsText("WatiN"));
            }
        }

    }
}

在 NUnit 会话窗口中,我遇到了以下错误:

SearchForWaitOnGoogle 失败:System.IO.FileNotFoundException:无法加载文件或程序集 'Interop.SHDocVw,Version=1.1.0.0,Culture=neutral 等等...

该错误可能是由于缺少 Interop.SHDocVw 组件导致的。您需要确保已正确安装并引用了该组件。另外,还可以尝试重新编译代码以修复任何潜在的构建问题。
5个回答

4

好的,已经解决了错误,如下其他溢出线程所述;WatiN System.IO.FileNotFoundException Interop.SHDocVw

但是,在序列中的一个关键操作是将Interop.SHDocVw dlls的“嵌入互操作类型”属性设置为“False”之后构建类库项目;

然后,您可以在NUNIT会话窗口中点击绿色箭头,一两秒钟后就会看到IE浏览器启动。只需单击它,您就会看到您编程的任何操作。

上帝在细节中!


1

将Interop.SHDocVw、Microsoft.mshtml dlls的“嵌入互操作类型”属性设置为“False”;

当然,Visual Studio会提示您如何进行修改。

使用Nugget包管理器


0
检查 Interop.SHDocVw.dll 的可用性, 确保您的项目引用了 Interop.SHDocVw.dll,并且 dll 文件存在于 Bin/Release 文件夹中,具体取决于您的运行方式。

0

我已经有了Interop.SHDocVw的参考。对我来说最简单的解决方法就是在Visual Studio设置中将.NET从4.5更改为3.5。更改后,它可以正常工作。


0

只需从主菜单中选择“生成”...然后选择“配置管理器”。在列表中选择您的项目并将其平台“Any CPU”更改为x86等。

如果您只有“Only CPU”选项,您可以在选择平台时使用...选项创建新设置,该设置适用于X86平台,然后选择它。

参考: 在VS2010中将目标更改为x86


不,如果您正在创建新设置,则只需复制设置即可。这对我没有影响。 - bendecko
没错,这什么也不做。 - WiredEarp

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接