C# WatiN文件上传

C# WatiN文件上传,c#,.net,watin,C#,.net,Watin,我遇到了困难。我正在尝试使用WatiN上传文件。我可以加载上传框,但它很快就会消失。目前我的代码的最后一行是: ie.FileUpload(Find.ById("profile_file")).Click(); 它加载对话框以选择图片,但会消失。是否可以自动设置框的路径?例如,加载“C:/Desktop/image.jpg” 另外,是否可以等待上载完成后再继续 非常感谢你的帮助 谢谢。虽然这不会直接回答您的问题,但我怀疑有DialogWatcher自动取消了该对话框。您为什么需要从对话框中选择

我遇到了困难。我正在尝试使用WatiN上传文件。我可以加载上传框,但它很快就会消失。目前我的代码的最后一行是:

ie.FileUpload(Find.ById("profile_file")).Click();
它加载对话框以选择图片,但会消失。是否可以自动设置框的路径?例如,加载“C:/Desktop/image.jpg”

另外,是否可以等待上载完成后再继续

非常感谢你的帮助


谢谢。

虽然这不会直接回答您的问题,但我怀疑有DialogWatcher自动取消了该对话框。

您为什么需要从对话框中选择。。尝试只发送文本:

ie.FileUpload(Find.ById("profile_file")).Text = "C:/Desktop/image.jpg";

作为一种安全措施,浏览器不允许脚本设置文件输入的值。想象一下,如果浏览器允许,我可以将一个隐藏的文件输入放在我有联系人表单的页面上,并在未经用户许可的情况下将其值设置为c:\topsecretinfo.txt。然后当用户提交表单时,瞧,我会得到他们的绝密信息

幸运的是,我今天遇到了这个问题,我就是这么做的:

  • 在页面上创建了一个名为“testupload”的新隐藏字段
  • 使用Watin将此隐藏字段的值设置为“我的测试”的路径 文件
  • 在服务器端,我检查这个字段,如果它存在, 我没有阅读发布的文件,而是从我的本地网站上阅读了这个文件 机器

这已经晚了6年,但是如果其他人(像我一样)仍然有这个问题,这里有一个解决方案

要填写文件对话框,请尝试以下操作:

ie.FileUpload(Find.ById("profile_file")).Set("filename.txt");
这将自动弹出文件对话框。然后,您将看到文本自动输入到文件选择文本字段中


不需要任何sendkeys。

我已设法使用FileUpload()的Set()方法,但在上载图像时,它将关闭框并导致“未指定错误”。实际上传的工作,因为我可以看到它说'上传图像'。这里有一个奇怪的问题。我想你需要检查这个问题,并与发布它的人一起搜索