我最近开始研究WatiN,并按照http://www.codeproject.com/KB/aspnet/WatiN.aspx的示例进行操作。不幸的是,我遇到了一个问题,它声称名称为“q”的文本字段不存在。
这是我的代码:
[STAThread]
static void Main(string[] args)
{
IE ie = new IE();
ie.GoTo("http://www.google.com");
TextField ietxt = ie.TextField(Find.ByName("q"));
ietxt.TypeText("WatiN");
ie.Button(Find.ByValue("Google Search")).Click();
}
当执行ietxt.TypeText("WatiN")这一行时,会抛出以下错误:"Could not find INPUT (hidden) or INPUT (password) or INPUT (text) or INPUT (textarea) or TEXTAREA element tag matching criteria: Attribute 'name' equals 'q' at google.com/ (inner exception: Element wasn't available within 30 seconds.)"。看起来其他人都使用这个示例,并且它们可以正常工作。我还查看了google.com的源代码,并确切地找到了“q”是搜索文本字段的名称。请注意保留html标记,但不要添加任何解释。
<input name="q" title="Search" class="gsfi" id="lst-ib" ....>
有人知道我为什么会收到这个错误吗?