使用 Selenium Webdriver 自动上传文件

Automating File Upload with Selenium Webdriver

目前我正在尝试自动上传 HTML 文件。

无论出于何种原因,我尝试在其上执行此操作的网站都没有像我希望的那样简单直接..

这是他们的文件上传代码div

<div class="form-row">
    <div id="fileupload" class="fileupload">

    <div class="c-position-relative margin-vertical10">
            <ul id="loaded-files" class="upload-image-thumbs clearfix loaded-placeholder">
                <li class="upload-placeholder upload-image">
                            <div class="uploadedImg"></div>
                        </li>
                        <li class="upload-placeholder ">
                            <div class="uploadedImg"></div>
                        </li>
                        <li class="upload-placeholder ">
                            <div class="uploadedImg"></div>
                        </li>
                        <li class="upload-placeholder ">
                            <div class="uploadedImg"></div>
                        </li>
                        <li class="upload-placeholder ">
                            <div class="uploadedImg"></div>
                        </li>
                        <li class="upload-placeholder new-line">
                            <div class="uploadedImg"></div>
                        </li>
                        <li class="upload-placeholder ">
                            <div class="uploadedImg"></div>
                        </li>
                        <li class="upload-placeholder ">
                            <div class="uploadedImg"></div>
                        </li>
                        <li class="upload-placeholder ">
                            <div class="uploadedImg"></div>
                        </li>
                        <li class="upload-placeholder ">
                            <div class="uploadedImg"></div>
                        </li>
                        </ul>
            <div id="upload_btn" class="c-green-button c-rounded-corners5 c-large">
                Add pictures
                <input type="file" name="file" multiple="">
            </div>

现在我很乐意将原始 javascript 发送到 click() 对象,甚至 select 带有 By.Id('') 的元素并以这种方式打开它,但这好像不行。

我知道该元素在突出显示时可以打开,并且再次发送回车键我似乎无法让它工作。

寻找一些想法and/or 解决方案。

发送的所有密钥都需要定向到 Selenium WebDriver 而不是从 windows 本身执行,因为用户将与 WinForm 交互。

您可以使用 .SendKeys() 方法来完成此操作。 例如

var uploadBtn = WebDriver.FindElement(By.Id("upload_btn"));
uploadBtn.SendKeys("C:\FilePath\File.txt");