无法使用WatiN 2.0 RC1中的Browser.AttachTo <firefox>方法附加到Firefox 3.x浏览器</firefox>

时间:2010-03-19 08:53:25

标签: c# firefox browser watin

我正在使用HTTPWatch自动化API来启动一个新的Firefox实例:

HttpWatch.Controller ct = new HttpWatch.Controller();
HttpWatch.Plugin plugin = ct.FireFox.New("");
plugin.GotoURL("http://www.google.com");

这些代码可以成功启动Firefox浏览器。然后我想控制WatiN 2.0中的浏览器:

FireFox ff = Browser.AttachTo<FireFox>(Find.ByTitle("Google"));

WatiN无法找到Firefox窗口(Firefox中添加了JSSH插件)。但是IE 7上的测试也没问题。

我甚至尝试手动打开Firefox窗口并访问google.com页面。 IE7中的WaitN可以附加到浏览器,但Firefox失败。

我的代码有什么问题吗?还是其他任何建议?提前谢谢!

以下是我的环境的配置:

  • 操作系统:Windows XP专业版SP2
  • WatiN:2.0 RC1
  • 浏览器:IE 7,带有JSSH插件的Firefox 3.0 / 3.5 / 3.6

3 个答案:

答案 0 :(得分:1)

要检查两件事:

据我所知,首先调用Browser.Attacho似乎在2.0 RC1中被破坏了。它可以替换为:

FireFox ff = (FireFox)Browser.AttachTo(typeof(FireFox),Find.ByTitle("Google"));

如果使用Firefox 3.6,您可能还需要更新JSSH插件,WatiN 2.0 RC1二进制文件中包含的插件与它不兼容。

可在此处找到:http://wiki.openqa.org/display/WTR/FireWatir+Installation

答案 1 :(得分:0)

感谢Vaudry,我从您为匹配Firefox3.6的网站更新了JSSH插件。但是在WatiN 3.0 RC1和Beta1中找不到函数FireFox.AttachToFireFox()。我使用HttpWatch提供的attach方法来控制Firefox浏览器:

HttpWatch.Controller ct = new HttpWatch.Controller();
HttpWatch.Plugin plugin = controller.Firefox.Attach("Default");

有效!但是...... HttpWatch提供的附加方法不适用于IE,

HttpWatch.Controller ct = new HttpWatch.Controller();
HttpWatch.Plugin plugin = ct.IE.Attach((SHDocVw.IWebBrowser2)ie.InternetExplorer);

上面的代码抛出了这样的异常:

  

无法加载文件或程序集   'Interop.SHDocVw,版本= 1.1.0.0,   文化=中性,   PublicKeyToken = db7cfd3acb5ad44e'或   其中一个依赖项。位于   程序集的清单定义   与程序集引用不匹配。   (HRESULT异常:0x80131040)

很难让WatiN 2.0和HttpWatch一起工作......

答案 2 :(得分:0)

最近发生了重大变化,使WatiN与浏览器无关,并允许测试人员创建一个浏览器文本夹具,该夹具将在指定的浏览器上运行测试,而无需专门内联编码。

一旦找到代码,我会发布一些更具体的内容;我更改了作业,现在正在使用TFS 2010而不是WatiN(不是我的选择,我喜欢WatiN!)。