使用 Selenium Web 驱动程序单击功能未单击 Telerik 打开文件对话框
Telerik Open File Dialogue not getting clicked using Selenium web driver click function
HTML & CSS 上面显示的代码 UI:
<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 控件实现的
问题:
需要上传文件,但只要在“Select”按钮上执行 Selenium WebDriver 单击,就会出现以下错误
OpenQA.Selenium.NoSuchElementException: '没有这样的元素: 无法定位元素.
点击不同的元素会出现不同的错误。其中之一是
'Element is not clickable'
尝试打开文件对话的失败次数:
单击了 Select 按钮
()
单击了文本框
()
点击跨度
()
已执行 JavaScript 点击所有上述元素
已尝试 driver.FindElement(By.Xpath("Xpath of Input Open file dialogue box")).SendKeys("FilePath");
我按照以下步骤解决了:
- 发现打开的文件对话框被隐藏了(因为 class ruFileInput)
<input type="file" tabindex="0" class="ruFileInput" multiple="multiple" name="ctl00_ContentPlaceHolder1_fileMgr_RadAsyncMultiUploadfile0" id="ctl00_ContentPlaceHolder1_fileMgr_RadAsyncMultiUploadfile0" size="23">
- 为了取消隐藏,我使用 JavaScript
删除了 ruFileInput class
document.querySelectorAll('input[type = file]')[0];
element.className = ' ';
- 然后执行正常的selenium web-driver点击就可以了
HTML & CSS 上面显示的代码 UI:
<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 控件实现的
问题:
需要上传文件,但只要在“Select”按钮上执行 Selenium WebDriver 单击,就会出现以下错误
OpenQA.Selenium.NoSuchElementException: '没有这样的元素: 无法定位元素.
点击不同的元素会出现不同的错误。其中之一是 'Element is not clickable'
尝试打开文件对话的失败次数:
单击了 Select 按钮 ()
单击了文本框 ()
点击跨度 ()
已执行 JavaScript 点击所有上述元素
已尝试 driver.FindElement(By.Xpath("Xpath of Input Open file dialogue box")).SendKeys("FilePath");
我按照以下步骤解决了:
- 发现打开的文件对话框被隐藏了(因为 class ruFileInput)
<input type="file" tabindex="0" class="ruFileInput" multiple="multiple" name="ctl00_ContentPlaceHolder1_fileMgr_RadAsyncMultiUploadfile0" id="ctl00_ContentPlaceHolder1_fileMgr_RadAsyncMultiUploadfile0" size="23">
- 为了取消隐藏,我使用 JavaScript 删除了 ruFileInput class
document.querySelectorAll('input[type = file]')[0];
element.className = ' ';
- 然后执行正常的selenium web-driver点击就可以了