使用 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");
目前我正在尝试自动上传 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");