IE와 FF가 파일 입력을 약간 다르게 처리하기 때문에 Internet Explorer를 사용할 때만 문제가 발생한다고 생각합니다. FF로 열기 대화 상자를 호출하는 버튼을 클릭하거나 IE에서 클릭 할 수 있습니다. 단추 또는 필드에서을 두 번 클릭하십시오.
WebDriver는 네이티브 이벤트를 사용하므로 입력 필드의 클릭으로 변환되는 파일 입력 컨트롤로 네이티브 마우스 클릭이 전송됩니다.
자바 스크립트를 사용하여 이벤트를 발생시키기 때문에 Selenium 1에서 작동했습니다. 이 WebDriver에서 일하려면 당신은 자바 스크립트를 호출해야합니다 코드 abouve 당신이 같은 사용할 수있는 것입니다하지 파이어 폭스에서, 그래서 그러나
WebElement upload = driver.findElement(By.name("Passport"));
((JavascriptExecutor)driver).executeScript("arguments[0].click();", upload);
:
WebElement upload = driver.findElement(By.name("Passport"));
if (driver instanceof InternetExplorerDriver) {
((JavascriptExecutor)driver).executeScript("arguments[0].click();", upload);
} else {
upload.click();
}