WatiN:向Google搜索框键入“WatiN”时出错

4

我最近开始研究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" ....>

有人知道我为什么会收到这个错误吗?


似乎任何使用“查找”语句的东西都无法正常工作。 - Jacob Wyatt
如果您想进行“Google搜索”,您可能需要查看此答案https://dev59.com/nl3Va4cB1Zd3GeqPFfd1#8390150。 - L.B
谢谢,但我的意图是学习WatiN,以便我可以将其用于Web应用程序测试。我现在只是试图获得一个可工作的示例。这段代码直接来自WatiN资源,所以肯定有一些原因导致它对我不起作用... - Jacob Wyatt
这太疯狂了...我一直在不停地寻找答案,但没有成功。我似乎无法访问网页上的任何元素。例如,ButtonCollection buttons = ie.Buttons 甚至会抛出“元素不可用”的错误...真是令人沮丧! - Jacob Wyatt
我刚刚也尝试了一个带有[STAThread]的VS 2010控制台应用程序,它仍然可以正常工作。 - peter
显示剩余3条评论
1个回答

1
我找到了解决方法!经过进一步测试,我得出结论,问题似乎来自于我的机器上IE 8的配置方式。我在其他安装有XP和IE8的机器上进行了测试,一切正常。卸载并重新安装IE8已经解决了这个问题。
我仍然不确定我的旧版本IE8有什么不同的配置,如果有人知道可能是什么原因导致这个问题,我会很高兴听到。
谢谢!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接