Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/286.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#_Automation_Focus_Download_Watin - Fatal编程技术网

C# WatiN可以在不需要焦点的情况下下载文件吗?

C# WatiN可以在不需要焦点的情况下下载文件吗?,c#,automation,focus,download,watin,C#,Automation,Focus,Download,Watin,我使用WatiN来自动化多个网站之间的文件传输(EDI事务),不幸的是,FTP或任何更加自动化友好的方式都不是一个选项。对于下载,我使用此示例的变体: FileDownloadHandler download = new FileDownloadHandler(fullFilename); using (new UseDialogOnce(ie.DialogWatcher, download)) { lnkFile.ClickNoWait(); download.WaitUnt

我使用WatiN来自动化多个网站之间的文件传输(EDI事务),不幸的是,FTP或任何更加自动化友好的方式都不是一个选项。对于下载,我使用此示例的变体:

FileDownloadHandler download = new FileDownloadHandler(fullFilename);
using (new UseDialogOnce(ie.DialogWatcher, download))
{
    lnkFile.ClickNoWait();

    download.WaitUntilFileDownloadDialogIsHandled(15);
    download.WaitUntilDownloadCompleted(150);
}

这很好,唯一的问题是它需要关注。有几十个文件需要下载,需要一段时间才能完成,这种情况并不少见。我在远程会话中运行它,这样我的机器就不会不可用,但是如果有任何方法可以消除对焦点的需要,那就很方便了。

我将使用WebClient类代替Watin


应该能够使用该类上载和下载文件。

我只是查看了一下,但似乎找不到任何处理文件下载对话框的方法-DownloadFile方法可以很好地工作,但网站上提供的下载链接不是指向文件的直接链接。哦,链接触发了一些JS,你需要采取进一步的行动吗?这确实让事情变得更复杂了。是的,不幸的是事实就是这样。就我的目的而言,WatiN的功能相当广泛,只是焦点的一个小问题。我认为你可以使用WatiN注入javascript,那么你可以注入一些东西来将焦点设置在你需要的控件上吗?我可能可以更好地措辞这个问题-问题不是WatiN不会关注下载文件所需的控件,在传输过程中,需要focus下载文件并连接机器。你能解释一下lnkFile应该是什么吗?谢谢lnkFile是一个链接,在本例中,需要单击该链接来启动文件下载。假设您的WatiN.Core.IE实例名为IE,您可以将lnkFile实例化为:lnkFile=IE.Link(Find.ById(“下载”);我已经按照你的建议设置了一个链接文件,但它仍然没有在IE9中下载该文件。还有其他想法吗?我应该在我的链接文件中使用“下载”以外的内容吗?谢谢我已经有一段时间没有使用WatiN了,但我看到邮件列表邮件说文件下载在IE9中不起作用。