失效:系统.UriFormatException: Invalid URI:主机名不能被解析

本文关键字:不能 URI 系统 UriFormatException Invalid 失效 主机 | 更新日期: 2023-09-27 18:17:50

我一直在尝试单元测试。我正在使用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();            
    }
}

每当我去运行它,窗口打开谷歌然后Nununit返回这个错误:

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

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

失效:系统.UriFormatException: Invalid URI:主机名不能被解析

你有没有试过找到这样的东西:

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

好的,第一个问题似乎是与查找。

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(""));

它通过了。不太确定您在这里要完成什么,但希望这对您有所帮助。

这可能是由于?字符和WatiN在执行查找操作时的内部操作方式

你可能想试试这个

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

这使用Regex重载来查找URL,并将转义?的性格。