我正在尝试运行一个简单的例子:搜索谷歌然后验证搜索结果。 (在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"));
我想这可能是因为谷歌即时的行为但不能确定。 有人能解释这次测试有什么问题吗?
答案 0 :(得分:2)
是的,它与Google Instant有关。当您在按钮上调用Click()
时,页面将不会重新加载,因此对ContainsText
的调用几乎不会出现延迟。如果您正在浏览javascript动态生成的页面(主要是AJAX),则需要使用Wait...
或元素的一些IE
方法。