簡體   English   中英

如何使用ruby和selenium-webdriver將文件發送到dropzone?

[英]How to send file to dropzone using ruby and selenium-webdriver?

這是帶有文件dropzone的網絡

我正在嘗試上傳這樣的圖像文件:

filename = '6.png'
file = File.join(Dir.pwd, filename)
@driver.find_element(:id, "project_images_dropzone").send_key file

但這行不通。 我也嘗試過拖放:

filename = '6.png'
file = File.join(Dir.pwd, filename)
target = @driver.find_element(:id, "project_images_dropzone")
@driver.action.click_and_hold(file).perform
@driver.action.drag_and_drop(file,target).perform
@driver.action.release.perform

...但是這種方法也不起作用。 有人知道我的問題的解決方案嗎?

在頁面隱藏輸入的代碼中,我發現:

<input class="dz-hidden-input" multiple="multiple" accept="image/jpg, image/jpeg, image/png" style="visibility: hidden; position: absolute; top: 0px; left: 0px; height: 0px; width: 0px;" type="file">

同樣,我嘗試使用第一種方法發送文件,但是webdriver無法找到此元素:

/var/lib/gems/2.3.0/gems/selenium-webdriver-3.3.0/lib/selenium/webdriver/remote/response.rb:69:in `assert_ok': Unable to locate element: #dz\-hidden\-input (Selenium::WebDriver::Error::NoSuchElementError)

我自己找到了解決方案。 我要做的就是使用xpath找到隱藏的輸入字段。 效果很好。 看起來是這樣的:

And(/^I upload an image$/) do
  filename = '6.png'
  file = File.join(Dir.pwd, filename) #Dir.pwd is the same folder where .rb file is
  @driver.find_element(:xpath, "html/body/input").send_key file #hidden input field
end

暫無
暫無

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

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