我有这个问题:
OpenQA.Selenium.ElementNotVisibleException:不显示元素。
在IE11 + WebDriver 2.53.0中使用Selenium上传文件。 Firefox正确使用此代码!
我尝试过一些像threadleep等待的东西,但没有任何帮助。我也试过点击元素(按钮)然后发送密钥,但它也不起作用。
这是我的HTML:
<div class="input-group col-sm-12">
<div class="input-group-btn" data-bind="unblocked: CanUploadApplicationDocuments">
<div class="btn btn-default btn-file">Browse
<input type="file" id="ApplicationDocumentsUpload" data-bind="event: { change: ApplicationFilesUploaded }" name="ApplicationDocumentsUpload" multiple="multiple"/>
</div>
</div>
<input type="text" class="form-control" id="ApplicationDocumentsUploadText" readonly>
</div>
这是我的Selenium:
var dataCvPath = ResourceProvider.Provide(@"\Resources\CV\dataCV.docx");
var upload = driver.FindElement(By.Name("ApplicationDocumentsUpload"));
upload.SendKeys(dataCvPath);
感谢您的帮助
答案 0 :(得分:0)
确保您提供SendKeys
的完整路径:
string dataCvPath = Path.GetFullPath(ResourceProvider.Provide(@"\Resources\CV\dataCV.docx"));
if (!File.Exists(dataCvPath))
throw new Exception("File not found: " + dataCvPath);
var upload = driver.FindElement(By.Name("ApplicationDocumentsUpload"));
upload.SendKeys(dataCvPath);
请注意,如果您正在使用远程会话,则还需要设置文件检测器:
driver.FileDetector = new LocalFileDetector();