使用Selenium WebDriver 處理Windows 檔案上傳
Selenium WebDriver 提供了一種自動化檔案上傳的便捷方法,但在某些情況下上傳,標準方法可能行不通。本文針對一種此類場景並提供了解決方案。
場景:
提供的元素不可單擊,標準sendKeys() 方法無法觸發檔案
解決方案:
對於Zamzar 網站:
- 使用sendKeys() 直接輸入將檔案路徑輸入輸入欄位。
上傳網站:
- 點選 Flash 元素開啟檔案上傳視窗。
- 使用Robot類別模擬鍵盤輸入,輸入檔案路徑。
詳細說明:
Zamzar網址:
- 文件輸入欄位是一個 HTML 元素。使用 sendKeys() 設定其值應該按預期工作。
上傳網站:
- 上傳按鈕是一個Flash 對象,沒有公開的API
- 點擊該按鈕將開啟一個本機檔案上傳對話框,該對話框不受WebDriver 的控制。
- 假設對話方塊開啟後檔案名稱輸入具有鍵盤焦點,您可以使用 Robot 來傳送按鍵以輸入檔案路徑。
替代解決方案(Flash):
- 修改Flash 應用程式以使用ActionScript 的ExternalInterface API 公開內部方法.
-
使用WebDriver在網頁中進行JavaScript呼叫來呼叫這些方法,模擬檔案上傳。
這種方案技術性更強,需要對Flash應用程式進行修改,但是它可以更好地控製檔案上傳過程。
以上是當 sendKeys() 不起作用時,如何在 Selenium WebDriver 中處理檔案上傳?的詳細內容。更多資訊請關注PHP中文網其他相關文章!