ファイルをアップロードする必要があるテストを作成する必要があります。これはRobotFrameworkを使用して可能ですか?
ありがとう
SeleniumLibraryにChooseFileキーワードがあります
[ファイル]キーワードを選択すると、ファイルアップロードテキストフィールドに名前を使用してファイルパスを入力できます。ただし、ファイルをクリックしてから[開く]ボタンをクリックしたウィンドウでファイルを選択するために、キーワードを操作することはできません。[ファイルを開く]ウィンドウでファイルをクリックして[開く]ボタンをクリックするには、RobotFrameworkAutoItLibraryキーワードを使用できます。 Robot FrameworkFileUploadのビデオチュートリアルを確認してください。
ChooseFileは、指定されたロケーターにファイルパスを貼り付けます。これは、入力テキストのみに似ています。このレコードのautoitスクリプトにAutoITを使用して、それをau3ファイルに変換し、以下のように 実行できます。実行して返すRC auitscriptforfileupload.au3
これは、DOMの外部をクリックすることを伴う他の問題と同様に、いくつかの方法で解決できます。Choose Fileは使用できるかもしれませんが、私はそれを試したことがなく、同じことを行うための他のトリックをいくつか見ました。
1つ目は、ユーザーが手動テストを行っている場合と同じように、AutoITを使用してDOMの外側をクリックすることです。自分で使ったことはありませんが、Robot Frameworkでウィンドウを最小化し、MSペイントを開いて線を引くために使用されているのを見たことがあるので、これにも使用できると確信しています。
2番目の方法は、ロボットフレームワークのキーワードを作成して、DOMの外部で切り取られた画像をクリックすることです。これは、RobotFrameworkでは通常はアクセスできないボタンをクリックするためにいつも使用しているものです。Snipping Toolを使用して、クリックしたい場所の写真を中央の場所で切り取ります。少し気難しいですが、使いやすいので気に入っています。これがPython2.7.13コードです。
def click_by_image(self, image_name):
if self.selenium_lib is None:
self.selenium_lib = BuiltIn().get_library_instance('ExtendedSelenium2Library')
pag.click(pag.locateCenterOnScreen(str(image_name)))
新しいRobotFrameworkキーワードの作成に精通していると仮定すると(詳細については、この質問の範囲外である他の質問/回答を参照してください)、これを実装するのは非常に簡単です。
編集:最近、[ファイルの選択]に切り替えました。これは、Windows(または実行しているOS)GUIが機能しており、RobotFrameworkが自動化していることを手動で実行できるためです。また、数回クリックするだけで高速になり、信頼性が高くなり、別のウィンドウに注意を払っているときにバックグラウンドで実行できます。
[ファイルを選択]が最適に機能します
例:ファイルパスチェックオペレーティングシステムライブラリの詳細については、実行ディレクトリからファイルをインポートします
Click Element ${IMPORT}
Choose File ${LOCATE_FILE} ${CURDIR}${/}filename.txt
Click Element ${VALIDATE_IMPORT}
私はこれを何度も使用しました。RobotFrameworkで2つの引数を取る1つの関数を作成しました。1ファイル名2場所の参照
File Upload for Creative
[Arguments] ${file}=
... ${browsrLocator}=
${NORMAL_PATH_UPLOAD_FILE_NAME} Normalize Path ${DataFiles}/${file}
Choose File ${browsrLocator} ${NORMAL_PATH_UPLOAD_FILE_NAME}
Sleep 3s
それでおしまい ..