2017-02-27 60 views
0

我想在IE11中使用java上載硒webdriver中的文件。下面的代碼是點擊瀏覽按鈕,但它沒有輸入或粘貼要上傳到新打開的窗口的文件名。它只是傻傻的,沒有任何反應。無法調試代碼。看到機器人類沒有響應。 我也嘗試過發送密鑰,但行爲不一致。機器人類不工作在IE 11中的文件上傳Selenium webDriver

<input name="ctl00$PlaceHolderMain$UploadDocumentSection$ctl05$InputFile" title="Choose a file" class="ms-fileinput ms-fullWidth" id="ctl00_PlaceHolderMain_UploadDocumentSection_ctl05_InputFile" onfocus="ResetSpFormOnSubmitCalled();" onchange="CheckAssetLibMediaExtension()" type="file" size="35">

    driver.manage().window().maximize(); WebElement element12 = (new WebDriverWait(driver, 10)).until(ExpectedConditions.elementToBeClickable(Main.newdocument(driver))); Main.newdocument(driver).click(); Thread.sleep(500); element12 = driver.findElement(By.xpath("//iframe[@class='ms-dlgFrame']")); driver.switchTo().frame(element12); 

      Thread.sleep(2000); 


       WebElement element = driver.findElement(By.xpath("//input[@type='file']")); 
       JavascriptExecutor executor = (JavascriptExecutor)driver; 
       executor.executeScript("arguments[0].click();", element); 


       Robot robot = new Robot(); 

       StringSelection sel = new StringSelection("C:\\Users\\m9kuil\\Desktop\\ImportAttendeeTemplate.xlsx"); 


        // Copy to clipboard 
       Toolkit.getDefaultToolkit().getSystemClipboard().setContents(sel,null); 

       robot.keyPress(KeyEvent.VK_CONTROL); 
       robot.keyPress(KeyEvent.VK_V); 

       // Release CTRL+V 
       robot.keyRelease(KeyEvent.VK_V);  
       robot.keyRelease(KeyEvent.VK_CONTROL); 

       //Press Enter 
       robot.keyPress(KeyEvent.VK_ENTER); 
       robot.keyRelease(KeyEvent.VK_ENTER); 
       robot.delay(1000); 
+0

當sendkeys不起作用時,您是否看到任何錯誤/異常? – Mahipal

+0

感謝您關注此問題。它沒有顯示任何錯誤/異常,但它卡住了,不能繼續進行。正如Eknath所建議的,添加Thread.sleep(10000)爲我工作。 – Monika

+0

不用擔心。不用謝。 – Mahipal

回答

0

的評論之前寫robot.delay(10000);嘗試一次//Press Enter

上傳文件,而機器人類其他簡單的選擇:

driver.findElement(By.xpath(".//input[@type='file']")).sendKeys("C:\\Users\\m9kuil\\Desktop\\ImportAttendeeTemplate.xlsx"); 

wait(10000)

+0

非常感謝!在使用發送密鑰後爲我加上等待時間10000。之前我嘗試過使用2000,因此我想這在行爲上並不一致 – Monika

相關問題