c# - 等待点击一个按钮

标签 c# watin

我在学习 WatiN API 时遇到了问题。

我将 WatiN api 与 WebBrowser 对象/控件一起使用,它在大多数情况下工作得很好。 我正在尝试使用 API 在 google 中进行搜索,但按钮没有按预期点击。

我什至使用了来自 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 对象/控件的情况下使用此代码时,代码工作正常。

最佳答案

我发现了问题。

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

这行代码有效:

 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();

关于c# - 等待点击一个按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12215326/

相关文章:

c# - 系统.Data.SqlClient.SqlConnection “Exception: Unknown packet type 74”

visual-studio-2010 - 需要一些在 VS2010 中编写自动化测试的教程

nunit - 使用 Nunit 计时问题进行 Watin 单元测试

c# - 使用 Watin 选择一个选项

teamcity - 使用 Team City 以静默模式运行 Watin

c# - key.contains(x) Map/Dictionary 的适当数据结构

c# - 让 VS 2008 停止强制缩进命名空间的方法?

c# - 如何在 C# 中正确处理相关但不同类的调用方法

c# - C++ 和 .NET 是否在银行、医疗保健和电信等领域一起使用