2011-05-07 61 views
0

我在使用Firefox和Watin 2.0以及最近的2.1版本时遇到了问题。Watin 2.1与Firefox 3.6的错误ContainsText和jssh

  • 火狐:3.6.17
  • 华廷:2.1.0.1196
  • 公堂/ MbUnit的:3.2.601
  • 的Windows Server 2008 32位
  • .NET 4.0组件
  • Visual Studio 2010中

我重复了这些指示: http://watin.org/documentation/setting-up-firefox/

我去到Firefox,文件 - >打开,导航到该文件:jssh-3.6-WINNT.xpi

安装在Firefox中的XPI没有任何问题。

在Watin的FF中,有几件事可以正常工作。查找文本字段,TypeText,点击,所有的工作。但是,这行代码被炸毁:

Assert.IsTrue(theBrowser.ContainsText(validationText),“结果中没有找到'列表'{0}'”,validationText);

请参阅下面的错误。任何想法我做错了什么?

WatiN.Core.Native.Mozilla.FireFoxException: Error sending last message to jssh server: SyntaxError: missing) after argument list 
C:\QEDev\tools\WatiN\source\src\Core\Native\Mozilla\FireFoxClientPort.cs(422,0): at WatiN.Core.Native.Mozilla.FireFoxClientPort.CheckForError(String response) 

回答

0

StackOverflow上的另一位用户在单独的线程中回答了此问题。这里是一个解决办法:

  • 子类基于关闭华廷的Firefox类
  • 覆盖的ContainsText方法
  • 使用HTML Agility Pack加载文档和调用包含方法。

这似乎很好地工作了一段时间。在其他计算机上,我看到与以前相同的JSSH错误。

public override bool ContainsText(string text) 
{ 
    WaitForComplete(); 

    var htmldoc = new HtmlDocument(); 
    htmldoc.LoadHtml(Html); 

    bool result = htmldoc.DocumentNode.InnerText.Contains(text); 

    return result; 
}