我在学习 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/