2016-05-16 8 views
1

だから私はちょっとしたものにぶつかった。私は入力ノードに複数のファイルを渡す必要があるテストケースを自動化しようとしていますが、その方法を理解することはできません。私はMechanizeかWatirのいずれかを使うことができますが、自動化では比較的重要なトピックに関する情報はほとんど見つかりませんでした。以下のスニペットでは、RubyでWatirを使用しています。私が抱えている主な問題は、複数のファイルが選択されたときに入力ノードが表示されなくなったように見えることです。入力ノードは複数のファイルを受け入れ、1つのパスで渡すと正常にアップロードされます。Watirで入力ノードに複数のファイルを渡す(Rubyを使用)

path1 = "/path/to/file.json" 
file_field.set path1 

私は複数のファイルに渡すと、区切り文字のいくつかの並べ替えで区切って複数のパスに文字列を渡すような単純なものだろうと思うだろう。私はウェブ開発者には特に精通していませんし、どこから始めるべきかを把握するのに苦労しています。私はそうのような複数のファイルに渡そうとすると:

multiple_paths = ("/path/to/file1.json"; "/path/to/file2.json") 
file_field.set multiple_paths 

それがアップロードをもう一度ファイルを与えるが初めてではない(私は多分それは順序でそれらをアップロードすると思う作り、第二は上書きされます)。

これはWatirを使用しても可能ですか? \ nをデリミタとして使用して複数のファイルをアップロードするための回避策がありますが、Firefoxにも同様の回避策がありますか?

+0

FWIW:FileFieldに# 'のような確認ルックスは、引数として単一のパスをset'expects:https://github.com/watir/watir-webdriver/blob/master/lib/watir-webdriver/elements/file_field .rb – orde

+0

です。 Chromeの回避策を実装するだけです。基本的には、パスで区切られた1つの文字列改行を渡すことができ、複数のファイルを入力ノードにアップロードします。 –

答えて

1

現在、Firefoxの回避策はないようです。誰かが分かっている場合は、どこにでも解決策が見つからないので、答えを投稿してください。私は、ここではリソースが不足しているので、ここでChrome用のソリューションを投稿すると考えました。

あなたが複数のファイルのアップロードをテストする必要がある場合は、特定のインスタンスは、とクロームのドライバをロードすることがあります。

@browser = Watir::Browser.new :chrome, :prefs => profile 

次に、あなたはそれを次のようになります文字列を渡したいとしている:

paths = "path/to/first/file.json\npath/to/second/file.json\n...etc 
file_field.send_keys paths 
関連する問題