【问题标题】:Upload a file in Selenium and Process it在 Selenium 中上传文件并处理它
【发布时间】:2017-11-26 19:19:44
【问题描述】:

我正在尝试创建一个将文件上传到OpenFileDialog 窗口的 Selenium 测试。

我通常通过SendKeys 功能获得此功能,但在这种特殊情况下,这还不够,因为SendKeys 只是放置文件的路径,并且我需要启动的进程在“打开”后启动OpenFileDialog 窗口中的按钮被按下。

也尝试过System.Windows.Forms.SendKeys.SendWait,但测试本身无法找到浏览器进程来键入文件路径。

有什么想法吗?

【问题讨论】:

    标签: c# selenium openfiledialog sendkeys


    【解决方案1】:

    如果您的按钮是文件类型,那么您不必单击该按钮然后在该按钮上发送密钥。

    只需在类型为文件的元素上发送键,即您不必打开任何 FileDialog。如果不是文件类型,则不能通过发送键发送文件路径。

    如果元素类型不是文件。你可以参考这个链接: https://www.codeproject.com/Articles/28064/Global-Mouse-and-Keyboard-Library

    【讨论】:

    • Sendkeys 只是放置文件的路径而不启动 OpenFileDialog,但它不会处理它。通常,在完成 SendKeys 之后,您必须找到用于单击它的按钮元素(上传、运行、启动...)以开始处理您放入路径中的文件,因为 SendKeys 本身不会。这就是我面临这个问题的原因,因为进程在 FileDialog 中按“打开”时开始,并且 FileDialog 不是由 Selenium 处理的。
    • 如果元素是文件类型,那么不需要找到任何元素来处理这个文件。你能给我你的 URL 以便我检查或分享元素的 HTML 吗? UI 上有提交按钮吗?
    • 您好,我终于通过将 FileDialog 文件类型的可见属性设置为可见来实现这一点,就好像它不可用一样,sendKeys 方法无法工作。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2023-01-31
    • 2018-02-24
    • 1970-01-01
    • 1970-01-01
    • 2013-02-26
    • 2012-06-30
    • 1970-01-01
    相关资源
    最近更新 更多