WatiN显示错误的URL

时间:2014-08-11 10:23:40

标签: c# watin

自从我尝试实施SSSO以来,我和WatiN合作了大约两天,我遇到了一个问题(以前从未使用过网站自动化)。

using(var ie = new IE("http://www.example.org")){
    Console.WriteLine(ie.Uri.ToString()) // Correct URL example.org
    ie.GoTo("http://www.example2.org"))
    Console.WriteLine(ie.Uri.ToString()) // Still example.org
    }

有人可以向我解释一下吗?我在example.org上处理一个Windows-Dialog,然后我点击了一个href,它引导我到example2.org我应该填写一些文本字段,但是没有找到文本字段,我得到了一个例外。

var ie = new IE("http://www.example.org");
Console.WriteLine(ie.Uri.ToString()); // example.org
ie.Close();
ie = new IE("http://www.example2.org");
Console.WriteLine(ie.Uri.ToString()); // example2.org

第二个当然是有效的,但为什么第一个解决方案无法正常工作呢?基本上,即使旧网站不再打开,旧网站也会被引用。

1 个答案:

答案 0 :(得分:0)

我使用Watir并且我真的不知道C#但是因为没有其他人回答过......

在第一个示例中,您将'ie'变量定义为IE("http://www.example.org") 然后在第3行,您只是引用原始的'ie'变量。 因此'ie'变量仍然具有您在第1行中给出的值。

在第二个示例中,您将'ie'定义为等于第一个url。 然后在第3行,您将'ie'的值更改为第二个URL。

控制台没有打印出您的浏览器当前所在的URL,它只是打印出'ie'的值,因为您在代码中设置了它,因为您将uri作为值的一部分包含在内即”

如果您要在'var'中设置'url',您可能需要将其命名为更符合其值的内容,如下所示:

var ie_example = new IE("http://www.example.org");
Console.WriteLine(ie_example.LocationURL.ToString()); // example.org
ie_example.Close();
var ie_example2 = new IE("http://www.example2.org");
Console.WriteLine(ie_example2.LocationURL.ToString()); // example2.org