上面显示的UI的HTML和CSS代码:
<span class="ruFileWrap ruStyled">
<input type="text" class="ruFakeInput radPreventDecorate" id="ctl00_ContentPlaceHolder1_fileMgr_RadAsyncMultiUploadfakeInput0" size="22">
<label for="ctl00_ContentPlaceHolder1_fileMgr_RadAsyncMultiUploadfakeInput0" style="display:none">label</label>
<input type="button" tabindex="-1" value="Select" class="ruButton ruBrowse">
<input type="file" tabindex="0" class="ruFileInput" multiple="multiple"
name="ctl00_ContentPlaceHolder1_fileMgr_RadAsyncMultiUploadfile0" id="ctl00_ContentPlaceHolder1_fileMgr_RadAsyncMultiUploadfile0" size="23">
<label for="ctl00_ContentPlaceHolder1_fileMgr_RadAsyncMultiUploadfile0" style="display:none">label</label>
</span>
观察:
文件上传功能是通过使用Telerik Control实现的
问题:
需要上传文件,但是只要在“选择”按钮上单击Selenium WebDriver,就会出现以下错误
OpenQA.Selenium.NoSuchElementException:'没有这样的元素:无法找到元素。
所单击的不同元素有不同的错误。其中之一是 “元素不可点击”
尝试打开文件对话的尝试失败:
单击“选择”按钮 ()
单击文本框 ()
点击跨度 ()
对上述所有元素执行JavaScript点击
尝试过driver.FindElement(By.Xpath(“输入打开文件的Xpath对话框”))。SendKeys(“ FilePath”);
答案 0 :(得分:0)
我按照以下步骤解决:
<input type="file" tabindex="0" class="ruFileInput" multiple="multiple" name="ctl00_ContentPlaceHolder1_fileMgr_RadAsyncMultiUploadfile0" id="ctl00_ContentPlaceHolder1_fileMgr_RadAsyncMultiUploadfile0" size="23">
document.querySelectorAll('input[type = file]')[0];
element.className = ' ';