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

时间:2011-12-13 20:59:20

标签: c# watin nunit-2.5

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

 [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.

有谁知道如何摆脱这个错误,或者解决它的方法?

3 个答案:

答案 0 :(得分:1)

您是否尝试过这样的定位:

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

答案 1 :(得分:0)

好的,第一个问题似乎是在这行上的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(""));

它过去了。不确定你在这里想要完成什么,但希望这会有所帮助。

答案 2 :(得分:0)

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

您可能想尝试这个

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

这使用Regex重载来查找URL并将逃脱?字符。