我正在使用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失败。
我的代码有什么问题吗?还是其他任何建议?提前谢谢!
以下是我的环境的配置:
答案 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!)。