我猜问题只是在使用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();}


