使用Selenium Webdriver自动执行文件上载

时间:2015-01-23 10:01:31

标签: javascript c# 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来点击()对象,或者甚至用By.Id('')选择元素并以这种方式打开它,但这似乎不起作用。

我知道元素在突出显示时会被打开,并且再次发送回车键我似乎无法使其工作。

寻找一些想法和/或解决方案。

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

1 个答案:

答案 0 :(得分:3)

您可以使用.SendKeys()方法执行此操作。 e.g。

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