2017-03-28 6 views
0

Here is the web with file dropzoneruby​​と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) 
+1

あなた自身が答えを見つけた場合は、質問の下の回答セクションに投稿してください。あなたはここにあなた自身の質問に答えることができます:)。 –

答えて

0

自分で解決策を見つけました。私がしなければならなかったことは、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 
関連する問題