无法单击打开文件附件对话框的按钮

2024-01-25

我在用着硒2β。我正在尝试单击打开文件附件对话框的按钮。但是当我点击它时什么也没有发生。

<input class="zf" name="Passport" id="PassportUpload" type="file" onclick="return { oRequired : {} }" maxlength="524288"> 


driver.findElement(By.name("Passport")).click();

仅使用 selenium 而不是 selenium 2 我可以轻松点击它。


我想这个问题仅在使用 Internet Explorer 时出现,因为 IE 和 FF 处理文件输入的方式略有不同:在 FF 中,您可以单击按钮或字段来调用“打开”对话框,而在 IE 中,您可以单击按钮或字段双击在场上。

WebDriver 使用本机事件,因此它将本机鼠标单击发送到文件输入控件,该控件将转换为输入字段上的单击。

它在 Selenium 1 中工作,因为它使用 JavaScript 来触发事件。要使其在 WebDriver 中工作,您需要调用 JavaScript:

WebElement upload = driver.findElement(By.name("Passport"));
((JavascriptExecutor)driver).executeScript("arguments[0].click();", upload);

然而,上面的代码不会在 Firefox 中出现,所以你可以使用如下代码:

WebElement upload = driver.findElement(By.name("Passport"));
if (driver instanceof InternetExplorerDriver) {
    ((JavascriptExecutor)driver).executeScript("arguments[0].click();", upload);
} else {
    upload.click();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法单击打开文件附件对话框的按钮 的相关文章

随机推荐