Wetin嵌入在winform应用程序中

时间:2011-05-18 08:35:28

标签: c# .net winforms internet-explorer watin

我收到了ie脚本错误,我如何处理Watin中的对话框? 我使用以下代码,不起作用,任何建议,链接,提示..... 还尝试禁用脚本调试,但错误没有消失。

- 取代。怎么用Watin做。

- 取代。从winform应用程序中执行相同操作的任何其他方法。

var __ie = new WebBrowserIE(webBrowser1);

var thread = new Thread(() =>
{
var helper = new DialogHandlerHelper();
using (new UseDialogOnce(__ie.DialogWatcher, helper))
       {
             __ie.GoToNoWait("https://adwords.google.com/o/Targeting/Explorer?__u=1000000000&__c=1000000000&ideaRequestType=KEYWORD_IDEAS#search.none");
System.Threading.Thread.Sleep(5000);
}

foreach (string item in helper.CandidateDialogHandlers)
{
  //dialog handler to use, but it does not reach here.
}

});

thread.SetApartmentState(ApartmentState.STA);
thread.IsBackground = true;
thread.Start();

enter image description here

提前谢谢。

2 个答案:

答案 0 :(得分:1)

哇,在将webrowsercontrol附加到威斯汀之前,解决方案比它看起来更容易,添加

webBrowser1.ScriptErrorsSuppressed = true;

抱歉,伙计们:)

谢谢。

答案 1 :(得分:0)

我也有同样的问题,但我不想压制对话框,我想记录他们抛出的错误。

以下函数应处理此问题:

    public static String HandleDialog(IE ie)
    {
        if (ie.HtmlDialogs.Count > 0)
        {
            HtmlDialog dialog = ie.HtmlDialogs.First();
            String text = dialog.Text;
            ie.HtmlDialogs.CloseAll();
            return text;
        }
        else 
            return "";
    }

如果任何脚本失败最终发生,我的测试报告会显示“通过警告”。