首頁  >  文章  >  Java  >  當 sendKeys() 不起作用時,如何在 Selenium WebDriver 中處理檔案上傳?

當 sendKeys() 不起作用時,如何在 Selenium WebDriver 中處理檔案上傳?

Susan Sarandon
Susan Sarandon原創
2024-11-02 06:47:29627瀏覽

How to Handle File Uploads in Selenium WebDriver When sendKeys() Doesn't Work?

使用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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn