目前我正在尝试自动化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进行交互。
答案 0 :(得分:3)
您可以使用.SendKeys()
方法执行此操作。
e.g。
var uploadBtn = WebDriver.FindElement(By.Id("upload_btn"));
uploadBtn.SendKeys("C:\\FilePath\\File.txt");