使用Selenium Web驱动程序单击功能未单击Telerik Open File Dialogue

时间:2018-11-20 07:18:23

标签: selenium-webdriver telerik openfiledialog

Link to Image of UI where selenium click is required

上面显示的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:'没有这样的元素:无法找到元素

所单击的不同元素有不同的错误。其中之一是 “元素不可点击”

尝试打开文件对话的尝试失败:

  1. 单击“选择”按钮 ()

  2. 单击文本框 ()

  3. 点击跨度 ()

  4. 对上述所有元素执行JavaScript点击

  5. 尝试过driver.FindElement(By.Xpath(“输入打​​开文件的Xpath对话框”))。SendKeys(“ FilePath”);

1 个答案:

答案 0 :(得分:0)

我按照以下步骤解决:

  1. 发现隐藏了一个打开的文件对话框(由于类ruFileInput)

<input type="file" tabindex="0" class="ruFileInput" multiple="multiple" name="ctl00_ContentPlaceHolder1_fileMgr_RadAsyncMultiUploadfile0" id="ctl00_ContentPlaceHolder1_fileMgr_RadAsyncMultiUploadfile0" size="23"> 

  1. 要取消隐藏,我使用JavaScript删除了ruFileInput类

document.querySelectorAll('input[type = file]')[0];
element.className = ' ';

  1. 然后执行常规的硒Web驱动程序单击。