簡體   English   中英

如何理解該文件是使用 Selenium 和 Ruby 上傳的?

[英]How to understand that file was uploaded with Selenium and Ruby?

我正在使用 Selenium + Ruby 編寫我的第一個自動化腳本,我需要將文件上傳到 web 應用程序。 問題是上傳需要一些時間(從 30 秒到 3 分鍾,這取決於)。 文件上傳后,我需要點擊“保存”按鈕。

我的代碼如何識別上傳過程已完成並且可以繼續執行?

以下是標准代碼,僅供參考:

driver = Selenium::WebDriver.for :chrome
driver.navigate.to 'my-website.com/upload'

driver.find_element(id: 'upload-input').send_keys('my/path/to/the/document')
driver.find_element(id: 'upload-button').click

**Now my code needs to wait till upload will be completed and then to click "Save" button**

driver.find_element(id: 'save-button').click

謝謝!

從 Selenium 的角度來看,文件上傳中沒有任何東西可以使用,但希望網站上還有其他東西可以使用。

文件上傳完成后,網站上的任何內容都會發生變化嗎? 也許會出現一個圖標,或者一個顯示“上傳完成”的框?

如果是這樣,您可以使用條件等待該元素出現!

就像是:

Selenium::WebDriver::Wait.new(timeout: 30).until {
  driver.find_element(id: 'upload-complete').displayed?
}

您需要將其包裝在一個rescue塊中,以捕獲諸如元素不存在之類的邊緣情況,但希望這能讓您開始!

首先,不要過度使用 Capybara/Selenium,即使它們很酷並且可以為您的項目增加一些價值,它們也是任何 TDD 套件中更脆弱、反復無常和速度較慢的部分,並且永遠不應超過所有組件的 10%你的測試。 使用它來測試文件的上傳顯然是一種反模式。

使用請求 rspec 和 javascript TDD 庫(Jest/Enzyme)來測試新功能。 目前用 Capybara/Selenium 測試所有東西的做法是瘋狂的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM