Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WatiN安全异常解决方案?_C#_Watin - Fatal编程技术网

C# WatiN安全异常解决方案?

C# WatiN安全异常解决方案?,c#,watin,C#,Watin,我正在使用Watin将图像复制到剪贴板,当我这样做时,会出现此错误 使用AlertDialogHandler是否有解决方法 public System.Drawing.Image GetPicture(WatiN.Core.Image image, ref IE browser) { if (image == null || !image.Exists || string.IsNullOrEmpty(image.Src))

我正在使用Watin将图像复制到剪贴板,当我这样做时,会出现此错误

使用AlertDialogHandler是否有解决方法

 public System.Drawing.Image GetPicture(WatiN.Core.Image image, ref IE browser)
        {
            if (image == null || !image.Exists || string.IsNullOrEmpty(image.Src))
                return null;
            const string t_js =
                    @"var div = document.images[{0}];
                      div.contentEditable ='true';
                      var controlRange;
                      if(document.body.createControlRange)
                      {{
                           controlRange = document.body.createControlRange();
                           controlRange.addElement(div);
                           controlRange.execCommand('Copy');
                       }}
                       div.contentEditable = 'false';";

            var cnt = -1;
            foreach (var image1 in browser.Images)
            {
                cnt++;
                if (image1 != null && image1.Exists && !string.IsNullOrEmpty(image1.Src) && image1.Src.ToLower() == image.Src.ToLower())
                    break;
            }
            var script = string.Format(t_js, cnt);


            WatiN.Core.DialogHandlers.AlertDialogHandler alertDialogHandler = new WatiN.Core.DialogHandlers.AlertDialogHandler ();
            using (new WatiN.Core.DialogHandlers.UseDialogOnce(browser.DialogWatcher, alertDialogHandler ))
            {

                browser.RunScript(script); // Exception comes here !!


alertDialogHandler.WaitUntilExists();

                alertDialogHandler.OKButton.Click();

                browser.WaitForComplete();

            }



            var data = Clipboard.GetDataObject();
            if (data == null)
                return null;
            var q = data.GetFormats();
            q.ToString();
            var q2 = data.GetFormats(true);
            q2.ToString();
            if (data.GetDataPresent(DataFormats.Bitmap))
            {
                var img = data.GetData(DataFormats.Bitmap, true);
                return img as System.Drawing.Image;
            }
            if (data.GetDataPresent(DataFormats.Dib))
            {
                var img = data.GetData(DataFormats.Dib, true);
                return img as System.Drawing.Image;
            }
            if (data.GetDataPresent(DataFormats.EnhancedMetafile))
            {
                var img = data.GetData(DataFormats.EnhancedMetafile, true);
                return img as System.Drawing.Image;
            }
            if (data.GetDataPresent(DataFormats.MetafilePict))
            {
                var img = data.GetData(DataFormats.MetafilePict, true);
                return img as System.Drawing.Image;
            }
            if (data.GetDataPresent(DataFormats.Tiff))
            {
                var img = data.GetData(DataFormats.Tiff, true);
                return img as System.Drawing.Image;
            }
            if (data.GetDataPresent(DataFormats.Serializable))
            {
                var img = data.GetData(DataFormats.Serializable, true);
                return img as System.Drawing.Image;
            }
            return null;
        }
谢谢

安全异常的图像:


我认为这与IE安全设置有关

后藤
安全选项卡->选择适当的区域(Internet/Local/etc)->单击自定义级别按钮->启用(脚本->允许编程剪贴板访问)

谢谢,我想知道使用代码是否可以避免。