2011-01-12 5 views
3

나는 셀렌 2 베타을 사용 중입니다. 첨부 파일 대화 상자를 여는 버튼을 클릭하려고합니다. 하지만 그것을 클릭하면 아무 일도 일어나지 않습니다.캔트 클릭하여 파일 첨부 대화 상자를 엽니 다.

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


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

그냥 셀레늄 2가 아닌 셀레늄 2를 사용하면 쉽게 클릭 할 수 있습니다.

답변

1

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(); 
} 
0

어쩌면 다음 코드를 시도 :

WebElement upload = driver.findElement(By.name("Passport")); 
if (driver instanceof InternetExplorerDriver) { 
    ((JavascriptExecutor)driver).executeScript("arguments[0].click();", upload); 
} else if (driver instanceof FirefoxDriver) { 
((JavascriptExecutor)driver).executeScript("arguments[0].click;", upload); 
}else { 
    upload.click(); 
} 
관련 문제