Я полагаю, что проблема возникает только при использовании 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();
}