C# WatiN可以在不需要焦点的情况下下载文件吗?
我使用WatiN来自动化多个网站之间的文件传输(EDI事务),不幸的是,FTP或任何更加自动化友好的方式都不是一个选项。对于下载,我使用此示例的变体: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
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中不起作用。