2017-09-28 1 views
0

hochladen Ich habe eine Anwendung, wo ich versuche, Dateien hochzuladen. Wir verwenden die Robot-Klasse, um den Datei-Upload durchzuführen. Die hochzuladenden Dateien werden erfolgreich ausgewählt und sollten nach dem Klicken auf "Dateien hinzufügen" hochgeladen werden. Es gibt andere Bereiche in der Anwendung, in denen ähnliche Dateiuploadfunktionen verfügbar sind und Dateien erfolgreich hochgeladen werden. In einem bestimmten Bereich, nachdem ich auf die Schaltfläche "Dateien hinzufügen" geklickt habe, erhalte ich einen Fehler in der Benutzeroberfläche "Beim Hochladen von Dateien ist ein technischer Fehler aufgetreten". Ich habe verschiedene Ressourcen durchgelesen und versucht, Thread.sleep, Explicit Wait mit wait.until (erwartete Bedingungen) zu verwenden, aber nichts scheint zu funktionieren. Habe hier eine Weile gesessen. Derselbe Code in anderen Bereichen der Anwendung lädt die Datei erfolgreich hoch. Dieser Code funktioniert im Debug-Modus gut, aber während der Laufzeit klickt er auf "Add Files", kann aber die Datei nicht hochladen. Snapshot of Code-Schnipsel:Selenium WebDriver- Java - Datei-Upload schlägt fehl nach dem Klicken auf die Schaltfläche Dateien hinzufügen, um sie in die Anwendung

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)); 

Antwort

0

Für Upload-Datei, wenn Ihr DOM wie ist 'input type = "file"' Dann können Sie SendKey Funktion von Selen verwenden.

Verwandte Themen