C# WatiN-失败:System.UriFormatException:无效URI:无法解析主机名

C# WatiN-失败:System.UriFormatException:无效URI:无法解析主机名,c#,watin,nunit-2.5,C#,Watin,Nunit 2.5,好的,我一直在尝试单元测试。我正在使用Nunit和WatiN进行测试,并决定尝试实现WatiN测试记录器。我不知道是否有人熟悉它,但我使用的是2.0版本(beta版),我直接从测试记录器中提取了以下代码,只是稍微清理了一下 [TestFixture, RequiresSTA] class WatiNTesting { [Test] public void WatiNTest() { IE window = new IE("http://www.googl

好的,我一直在尝试单元测试。我正在使用Nunit和WatiN进行测试,并决定尝试实现WatiN测试记录器。我不知道是否有人熟悉它,但我使用的是2.0版本(beta版),我直接从测试记录器中提取了以下代码,只是稍微清理了一下

 [TestFixture, RequiresSTA]
class WatiNTesting
{
    [Test]
    public void WatiNTest()
    {
        IE window = new IE("http://www.google.com");
        TextField txt_q = window.TextField(Find.ByName("q"));
        Element Locate = window.Element(Find.ByText("") && Find.ByValue("") && Find.ById("") && Find.BySrc("") && Find.ByUrl(""));
        Link lnk_wwwvietnamesetestingboardorgzbxemiddownloadcategory197510 = window.Link(Find.ByUrl("http://www.vietnamesetestingboard.org/zbxe/?mid=download&category=197510"));

        txt_q.TypeText("Watin");
        Locate.Click();
        lnk_wwwvietnamesetestingboardorgzbxemiddownloadcategory197510.Click();
        window.Dispose();            
    }
}
无论何时我运行它,窗口都会打开到goolge,然后Nununit返回以下错误:

Failure: System.UriFormatException : Invalid URI: The hostname could not be parsed.

有人知道如何摆脱这个错误,或者知道如何绕过它吗

好的,第一个问题似乎是这行的Find.ByUrl调用

Element Locate = window.Element(Find.ByText("") && Find.ByValue("") && 
    Find.ById("") && Find.BySrc("") && Find.ByUrl(""));
删除它

Element Locate = window.Element(Find.ByText("") && Find.ByValue("") &&
    Find.ById("") && Find.BySrc(""));

就这样过去了。我不太确定你想在这里完成什么,但希望这能有所帮助。

这可能是由于存在的?URL中的字符以及WatiN在执行查找操作时的内部操作方式

你可能想试试这个

Link lnk_wwwvietnamesetestingboardorgzbxemiddownloadcategory197510 = window.Link(Find.ByUrl(new Regex(@"^http://www.vietnamesetestingboard.org/zbxe/\?mid=download&category=197510$")));

这将使用正则表达式重载来查找URL,并将转义?性格

您是否尝试过查找类似的内容:

Link link = window.Link(Find.By("rawurl", "http://www.vietnamesetestingboard.org/zbxe/?mid=download&category=197510"));

这不是我,那是由WatiN测试录音机提供的…我以为录音机会让我的生活更轻松,但它似乎只是让它变得更复杂哈哈。然而,删除这条线并没有使它起作用。同样的错误,仍然不工作。应用程序打开一个google窗口并键入WatiN,然后在大约1分钟后返回以下消息:失败:WatiN.Core.Exceptions.ElementNotFoundException:找不到元素标记匹配条件:'''Attribute'innertext'匹配'^**$''和'Attribute'value'等于''''和'Attribute'id'等于''以及'Attribute'src'等于''(内部异常:访问被拒绝)。"当您尝试单击时,DOM中是否存在具有该src属性的链接?为什么不尝试从正则表达式中删除“^”和“$”?这可能会有所帮助。您现在看到的异常是,您试图单击的链接在单击时在DOM中不存在。您遇到的异常是u变得更早,因为URL解析因无效字符(在正则表达式中使用时)而失败。