コード例 #1
0
        /// <summary>
        /// Adds a navigation bar to the provided control (synced with the provided WatiN_IE object)
        /// </summary>
        /// <param name="watinIe"></param>
        /// <param name="control"></param>
        /// <returns></returns>
        public static WatiN_IE add_NavigationBar(this WatiN_IE watinIe, Control control)
        {
            if (watinIe.isNull())
            {
                return(watinIe);
            }
            var urlTextBox = control.insert_Above(20)
                             .add_TextBox("Url:", "")
                             .onEnter((text) => watinIe.open_ASync(text))
                             .onTextChange((text) =>
            {
                if (text.contains("".line()))
                {
                    watinIe.open_ASync(text);
                }
            });

            watinIe.onNavigate((url) => urlTextBox.set_Text(url));
            return(watinIe);
        }
        public static string open_and_HandleFileDownload(this WatiN_IE watinIe, string url, string fileName)
        {
            var tmpFile           = fileName.tempFile();
            var waitUntilHandled  = 20;
            var waitUntilDownload = 300;

            var fileDownloadHandler = watinIe.dialogHandler <FileDownloadHandler>();

            if (fileDownloadHandler.notNull())
            {
                watinIe.IE.RemoveDialogHandler(fileDownloadHandler);
            }

            fileDownloadHandler = new FileDownloadHandler(tmpFile);
            watinIe.IE.AddDialogHandler(fileDownloadHandler);


            fileDownloadHandler.field("saveAsFilename", tmpFile);
            fileDownloadHandler.field("hasHandledFileDownloadDialog", false);

            watinIe.open_ASync(url);
            try
            {
                fileDownloadHandler.WaitUntilFileDownloadDialogIsHandled(waitUntilHandled);
                "after: {0}".info("WaitUntilFileDownloadDialogIsHandled");
                fileDownloadHandler.WaitUntilDownloadCompleted(waitUntilDownload);
                "after: {0}".info("WaitUntilDownloadCompleted");
            }
            catch (Exception ex)
            {
                "[WatiN_IE][open_and_HandleFileDownload] {0}".error(ex.Message);
            }

            if (fileDownloadHandler.SaveAsFilename.fileExists())
            {
                "[WatiN_IE] downloaded ok '{0}' into '{1}'".info(url, fileDownloadHandler.SaveAsFilename);
                watinIe.IE.RemoveDialogHandler(fileDownloadHandler);
                return(fileDownloadHandler.SaveAsFilename);
            }
            "[WatiN_IE] failed to download '{0}' ".info(url);
            return(null);
        }