【问题标题】:How do I use the FileUploadDialogHandler in watin to access the file upload dialog如何使用 watin 中的 FileUploadDialogHandler 访问文件上传对话框
【发布时间】:2011-05-09 04:49:06
【问题描述】:

我正在使用带有 watin 的 IE8,并尝试通过我的网页上传文件。我不能简单地使用 set 方法设置上传文件,例如

ie.FileUpload(Find.ById("someId")).Set("C:/Desktop/image.jpg");

因为上传文本区域在 IE8 中不可写,所以我必须使用 FileUploadDialogHandler 但我找不到任何示例说明如何执行此操作。

我已经成功找到并使用了 ConfirmDialogHandler 的示例,但我似乎无法弄清楚如何使用 FileUploadDialogHandler。

任何示例将不胜感激。

【问题讨论】:

    标签: c# watin


    【解决方案1】:

    您的代码看起来不错。您不必使用FileUploadDialogHandler。内部调用Set方法时使用。

    【讨论】:

    • 但是上传控件中的文本框不可写,所以当我调用 Set 方法时,浏览器中没有任何反应,然后当我尝试上传时,我得到一个文件不存在错误,这与我手动执行时发生的情况相同。如果不先弹出上传对话框,我就无法输入任何文本,而且我不知道如何与上传弹出窗口进行交互。
    • 这与文本框无关。当您调用Set 时,WatiN 通常会打开一个对话框并使用FileUploadDialogHandler 在其中键入文件名。我的猜测是您必须将您的网站添加到受信任或类似的网站。
    • 感谢您的帮助。我将我的网站添加到受信任的网站,现在它可以工作了 :-)
    【解决方案2】:

    试试这个代码

    FileUploadDialogHandler fileupload = new FileUploadDialogHandler("filename.xls");
    using (new UseDialogOnce(ie.DialogWatcher, fileupload ))
    {
       //code to intiate the file upload, like button.Click()
    }
    

    【讨论】:

      【解决方案3】:

      我有同样的问题。对话框正在打开,但未写入文件路径。对话框保持打开状态。 我找到了一个旁路。在使用 .Set 函数之前,请使用 .Click 函数。

      类似的东西:

      ie.FileUpload(Find.ById("someId")).Click(); ie.FileUpload(Find.ById("someId")).Set("C:/Desktop/image.jpg");

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-07-08
        • 1970-01-01
        • 1970-01-01
        • 2014-09-19
        • 2021-12-25
        • 2012-02-23
        相关资源
        最近更新 更多