0

次のポイントに到達したときに、レールアプリと私が書いている統合テストで filepicker.io の実装をテストしています。

sleep(5.0)
find_button('#fileUploadDummy').click

次のエラーが表示されます。

Failure/Error: find_button('#fileUploadDummy').click
     Capybara::ElementNotFound:

このエラーに到達する前に、ブラウザが開いてこの時点まで進んでいるのを見ています。filepicker モーダル内でこのボタンをクリックするにはどうすればよいですか?

4

3 に答える 3

1

Capybara-webkitこのテストをor (ヘッドレス) で動作させることができなかったPoltergeistので、に切り替えましたSelenium

コード例:

test 'filepicker upload' do
    # in case your default driver is :webkit
    Capybara.current_driver = :selenium

    # this click_on will trigger filepicker.io plugin
    click_on 'Upload'

    # waiting for filepicker.io
    sleep 5

    within_frame 'filepicker_dialog' do
        # attach image to filepicker file input and upload...
        find('#fileUploadInput', visible: false).set("#{Rails.root}/test/integration/test_image.png")
        sleep 5
    end
end

私のデバッグから、エラーが発生していたため、オリジンのプライバシーなどの問題がありました:

Unsafe JavaScript attempt to access frame with URL

于 2014-06-26T11:21:29.387 に答える
0

ファイルピッカーモーダルのボタンだと思っていたのはファイルタイプの入力要素であり、rspecで画像をアップロードするにはメソッドattach_fileを使用する必要がありました。

于 2012-11-27T05:17:37.540 に答える
0

ほとんどの場合、最初に iframe へのハンドルを取得してから、そのドキュメント内で検索を行う必要があります。これがどのように rspec に変換されるかはわかりませんが、同等の js コードは次のようになります。

var iframe_doc = document.getElementById("filepicker_dialog").contentDocument;
iframe_doc.getElementById("fileUploadDummy")

もちろん、これはクロスオリジンの JavaScript 呼び出しのために混乱しますが、rspec は問題ないはずです

于 2012-11-20T05:31:15.363 に答える