WatiN单击按钮

时间:2012-08-31 12:23:50

标签: c# watin

我正在学习WatiN API,但我遇到了问题。

我使用带有WebBrowser对象/控件的WatiN api,它在大多数情况下都很有用。 我试图在谷歌搜索API,但按钮没有按照它应该点击。

我甚至使用来自WatiN网站的相同代码(差别很小): 我的代码:

//need to use a thread to work with the WebBrowser object
var thread = new Thread(() =>
{
    Settings.AutoStartDialogWatcher = false;

    using (IE browser = new IE(webBrowser1.ActiveXInstance))
    {
         browser.GoTo("http://www.google.co.il");
         browser.TextField(Find.ByName("q")).Value = " woowow";
         browser.Button(Find.ByName("btnG")).Click();
    }
});
thread.SetApartmentState(ApartmentState.STA);
thread.Start();

我可以设置我正在添加的文字,但按钮"btnG"不会被点击。

当我使用没有WebBrowser对象/控件的代码时,代码工作正常。

1 个答案:

答案 0 :(得分:7)

我发现了问题。

我需要将焦点转移到网站上。

这行代码有效:

 browser.NativeDocument.Body.SetFocus();

所以现在代码看起来像这样:

Settings.AutoStartDialogWatcher = false;

            browser = new IE(webBrowser1.ActiveXInstance);

                browser.GoTo("http://www.google.co.il");
                browser.TextField(Find.ByName("q")).Value = " woowow";

                browser.NativeDocument.Body.SetFocus(); // set focus befor u click

                browser.Button(Find.ByName("btnG")).Click();


        });
        thread.SetApartmentState(ApartmentState.STA);
        thread.Start();