3

を使用して現在のプロジェクトのテストを書いていますCucumberJS。テストは を使用してテストされSelenium Server + WebDriverIOます。今、サーバーにアップロードする画像ファイルを選択する必要があるテストに行き詰まっています。私はこの WebDriverIO の関数を使用しています:

chooseFile(String selector, String localFilePath, Function callback)
Given a selector corresponding to an <input type=file>, will upload the local file to the browser machine and fill the form accordingly. It does not submit the form for you.

root問題は、すべてのコンピューターでテストを実行できるようにするため、サーバーのフォルダーにいくつかのテスト画像ファイルを事前にアップロードしたことです。このフォルダーが他のコンピューターのどこに置かれるのか分からないので、相対ファイル パスを関数rootに送信する方法が必要だと思います。chooseFile私はこの方法を試しましたが、うまくいきませんでした(これは、以下のファイルのコードですuploadImg.coffee

@Given /^user attemp to upload his first avatar$/, (callback) ->
    @browser
    .click ".change-avatar"
    .chooseFile "input[name=avatarFile]", "/imgForTesting/spiderman.png"
    .click "#saveAvatarButton"
    .call callback
    return

これは私のプロジェクトフォルダー構造です(私は使用していますMeteorJS):

public/ (root)
---imgForTesting/
------spiderman.png
packages/
---test-cucumber/
------features/
---------uploadImg.feature
---------step_definitions/
------------uploadImg.coffee
4

1 に答える 1