2017-05-24 60 views
-4

enter image description here] 1硒選擇文件夾Windows對話框

有什麼用文件上傳做很多的例子,但我找不到在選擇文件夾東西。任何想法如何處理?

UPDATE:

我已經嘗試了3點不同的方式,但沒有工作:

  • 一是採用的SendKeys()。這不起作用,因爲沒有輸入字段。單擊按鈕時此對話框打開。

  • 第二個是使用AutoIt,它在上傳文件對話框中使用。當我使用它時會導致錯誤,因爲我沒有上傳文件,只是選擇了一個文件夾。

  • 第三個是機器人,在那裏我複製我想要的剪貼板的路徑,並嘗試粘貼它與機器人。它不適合我。

更新2:

如果你打開Chrome://擴展/在Chrome瀏覽器和蜱開發模式,你會看到一個負載解壓的擴展按鈕。這是按鈕,當你點擊你得到這個窗口對話框:enter image description here

+0

發佈問題時請在您的問題中添加足夠的詳細信息,以幫助其他人瞭解動機 –

+0

@mosaad您是否可以考慮使用AutoIT案例更新我們?當我使用它時出現錯誤,因爲我沒有上傳文件,只是選擇一個文件夾「。謝謝 – DebanjanB

+0

你能顯示包含按鈕的整個div的html嗎?我遇到了一個網站,其中的按鈕標籤包含輸入字段本身。例如。在這種情況下,您可以直接使用sendKeys() – iamkenos

回答

0

Selenium支持Web瀏覽器,而不是Windows對話框。 唯一的選擇是使用編碼的UI或Autoit編寫自動化。

2

有通過它可以處理文件上傳不同的方式:

方法1:

WebElement fileInput = driver.findElement(By.name("uploadfile")); 
fileInput.sendKeys("C:/path/to/file.jpg"); 

方式2:

通過使用機器人類API:

driver.findElement(By.By.name("uploadfile")).click(); 
Robot r = new Robot(); 
r.keyPress(KeyEvent.VK_KP_DOWN);   
r.keyRelease(KeyEvent.VK_KP_DOWN); 
r.keyPress(KeyEvent.VK_KP_RIGHT);  
r.keyRelease(KeyEvent.VK_KP_RIGHT); 
r.keyPress(KeyEvent.VK_ENTER); 
r.keyRelease(KeyEvent.VK_ENTER); 

希望它會幫助你

0

Selenium只能在Web瀏覽器上工作,你可以使用AutoIT,但我看到你已經試過了。在那種情況下,我會建議你使用Sikuli。