WatiN - Сбой: System.UriFormatException: неверный URI: не удалось проанализировать имя хоста - PullRequest
0 голосов
/ 14 декабря 2011

Хорошо, поэтому я экспериментировал с модульным тестированием.Я использую 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 ]

1 голос
/ 23 декабря 2011

Вы пытались найти что-то вроде этого:

Link link = window.Link(Find.By("rawurl", "http://www.vietnamesetestingboard.org/zbxe/?mid=download&category=197510"));
0 голосов
/ 14 декабря 2011

Это может происходить из-за наличия?символ в вашем URL-адресе и то, как WatiN работает внутренне при выполнении операции поиска

Возможно, вы захотите попробовать это

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

Это использует перегрузку Regex для поиска URL и будет экранировать?персонаж.

0 голосов
/ 14 декабря 2011

Хорошо, первая проблема, похоже, связана с вызовом 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(""));

И это проходит. Не совсем уверен, чего вы здесь добиваетесь, но надеюсь, что это поможет.

...