파일을 업로드하려고하는 애플리케이션이 있습니다. Robot 클래스를 사용하여 파일 업로드를 수행합니다. 업로드 할 파일이 성공적으로 선택되고 "파일 추가"버튼을 클릭 한 후에 업로드해야합니다. 유사한 파일 업로드 기능이 있고 파일이 성공적으로 업로드되는 응용 프로그램의 다른 영역이 있습니다. 한 특정 영역에서 파일 추가 버튼을 클릭 한 후 "파일을 업로드하는 동안 기술적 인 오류가 발생했습니다"UI에 오류가 발생합니다. 나는 다양한 리소스를 통해 읽었으며 Thread.sleep, Explicit Wait with wait.until (예상 조건)을 사용해 보았지만 아무것도 작동하지 않는 것 같습니다. 여기 잠시 동안 붙어있어. 응용 프로그램의 다른 영역에서 같은 코드가 파일을 성공적으로 업로드합니다. 이 코드는 디버그 모드에서 잘 작동하지만 런타임 중에는 "파일 추가"버튼을 클릭하지만 실제로 파일을 업로드하지는 않습니다. 코드의 스냅 샷 : 당신의 DOM이 '입력 유형 = "파일"'같은 경우Selenium WebDriver-Java - 파일 추가 버튼을 클릭하여 파일 업로드를 클릭 한 후 파일 업로드가 실패했습니다.
는try{
System.out.println(filePath);
File file = new File(filePath);
System.out.println(file.getAbsolutePath());
StringSelection ss = new StringSelection(file.getAbsolutePath());
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(ss, null);
Robot robot = null;
robot = new Robot();
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_V);
robot.keyRelease(KeyEvent.VK_V);
robot.keyRelease(KeyEvent.VK_CONTROL);
robot.delay(3000);
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER);
}
catch (AWTException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
bStatus=Wait.waitForElementVisibility(By.xpath(Locators.Campaings.FilesTab.completeFileLoadXpath), 90);
if(!bStatus) return bStatus;
//add files
WebDriverWait wait = new WebDriverWait(driver, 10000);
wait.until(ExpectedConditions.elementToBeClickable(By.xpath(Locators.Campaings.TaskTab.taskDetailsUploadFilesBtnXpath)));
bStatus=Elements.clickElement(By.xpath(Locators.Campaings.TaskTab.taskDetailsUploadFilesBtnXpath));
if(bStatus)
{
Thread.sleep(20000);
}
//WebDriverWait wait = new WebDriverWait(driver,10);
//wait.until(ExpectedConditions.visibilityOf(driver.findElement(By.xpath(Locators.HomePage.MainHeader.MenuLinks.img_Loading_Grid))));
//bStatus = Wait.waitForElementVisibility(By.xpath(".//*[@id='edit- task-details-modal']//tr//td[1]"), 60);
//if(!bStatus) return bStatus;
//TimeUnit.SECONDS.sleep(60);
//bStatus=Wait.waitForNoWebElement(By.xpath(Locators.HomePage.MainHeader.MenuLinks.img_Loading_Grid),60);
//if(!bStatus) return bStatus;
String actual_Message=Elements.getText(By.id(Locators.Campaings.TaskTab.taskDetailsFileUploadSuccessMessageId));