搜索谷歌后,WatiN找不到文字

时间:2011-04-28 09:11:30

标签: watin

我正在尝试运行一个简单的例子:搜索谷歌然后验证搜索结果。 (在IE9上)

var browser = new IE("http://www.google.com/ncr");

browser.TextField(Find.ByName("q")).TypeText("WatiN");
browser.Button(Find.ByName("btnG")).Click();

Assert.True(browser.ContainsText("WatiN"));

此测试失败!我不知道为什么,但是添加对WaitUntilContainsText(“Everything”)的调用会使这个传递:

var browser = new IE("http://www.google.com/ncr");

browser.TextField(Find.ByName("q")).TypeText("WatiN");
browser.WaitUntilContainsText("Everything");// because of google instant??
browser.Button(Find.ByName("btnG")).Click();

Assert.True(browser.ContainsText("WatiN"));

我想这可能是因为谷歌即时的行为但不能确定。 有人能解释这次测试有什么问题吗?

1 个答案:

答案 0 :(得分:2)

是的,它与Google Instant有关。当您在按钮上调用Click()时,页面将不会重新加载,因此对ContainsText的调用几乎不会出现延迟。如果您正在浏览javascript动态生成的页面(主要是AJAX),则需要使用Wait...或元素的一些IE方法。