2017-09-28 9 views
0

ファイルをアップロードしようとしているアプリケーションがあります。 Robotクラスを使用してファイルのアップロードを行っています。アップロードするファイルは正常に選択されており、[ファイルの追加]ボタンをクリックしてアップロードする必要があります。アプリケーションには、同様のファイルアップロード機能があり、ファイルが正常にアップロードされる他の領域があります。 1つの特定の領域で、ファイルの追加ボタンをクリックした後、UIにエラーが発生しました。「ファイルのアップロード中に技術的なエラーが発生しました。私はさまざまなリソースを読んで、Thread.sleepを使って明示的に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)); 

答えて

0

アップロードファイルの場合は、 はその後、セレンのSENDKEY機能を使用することができます。

関連する問題