web-dev-qa-db-ja.com

カタロンスタジオを使用してファイル/写真をアップロードするにはどうすればよいですか?

自動化テストのためにkatalonstudioを使用してファイルをアップロードしようとしています(Webテスト。[参照]ボタンをクリックするとウィンドウポップアップが開きますが、写真を選択したり、特定のパスに移動したりできません。コマンドが見つかりましたWebUI.UploadFile()しかし、私はそれを正しく使用していないと思います。

誰かがこのようなものを持っていたら、あなたの経験を共有してください。カタロンでこれを行うにはどうすればよいですか?

7
M.Mortada

このソリューションを試してみることができます:

  1. 次のカスタムキーワードを作成します( https://docs.katalon.com/display/KD/Define+custom+keywords ):
import Java.awt.Robot 
import Java.awt.Toolkit 
import Java.awt.datatransfer.StringSelection 
import Java.awt.event.KeyEvent

import com.kms.katalon.core.annotation.Keyword 
import com.kms.katalon.core.testobject.TestObject 
import com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords as WebUI

public class WebUICustomKeyword { 
    @Keyword 
    def uploadFile(TestObject to, String filePath) { 
        WebUI.click(to) 
        StringSelection ss = new StringSelection(filePath); 
        Toolkit.getDefaultToolkit().getSystemClipboard().setContents(ss, null); 
        Robot robot = new Robot(); 
        robot.keyPress(KeyEvent.VK_ENTER); 
        robot.keyRelease(KeyEvent.VK_ENTER); 
        robot.keyPress(KeyEvent.VK_CONTROL); 
        robot.keyPress(KeyEvent.VK_V); 
        robot.keyRelease(KeyEvent.VK_V); 
        robot.keyRelease(KeyEvent.VK_CONTROL); 
        robot.keyPress(KeyEvent.VK_ENTER); 
        robot.keyRelease(KeyEvent.VK_ENTER); 
    } 
}
  1. 代わりに、テストケースで「ファイルのアップロード」ステップをそのカスタムキーワードに置き換えます。例:
CustomKeywords.'com.katalon.WebUICustomKeyword.uploadFile'(findTestObject('BrowseButton'), 'yourFileHere')
9
Hung D. Pham
  1. まず、ファイルアップロードボタンまたはリンクへのキーワードを次のように作成します。“ Object Repository/Page_Add_Document_To_Current_Account/lnk_choose_a_file”

  2. 次に、クラスuploadNewFile {のように、アップロードを処理するメソッド呼び出しを作成します。

    / **このメソッドはファイルのアップロードに使用されます*/@Keyword def uploadFileToTest(TestObject to、String filePath){WebUI.click(to)WebUI.delay(3)//この遅延を追加してコードを指定することをお勧めしますStringSelectionを実行する時間ss = new StringSelection(filePath)Toolkit.getDefaultToolkit()。getSystemClipboard()。setContents(ss、null)WebUI.delay(2)//上記と同じ理由

    Robot robot = new Robot()robot.keyPress(KeyEvent.VK_ENTER)robot.keyRelease(KeyEvent.VK_ENTER); robot.keyPress(KeyEvent.VK_CONTROL); robot.keyPress(KeyEvent.VK_V); robot.keyRelease(KeyEvent.VK_V); robot.keyRelease(KeyEvent.VK_CONTROL); robot.keyPress(KeyEvent.VK_ENTER); robot.keyRelease(KeyEvent.VK_ENTER); }}

  3. 次に、コード内で必要な場所でメソッドを呼び出すと、次のように表示されます。*CustomKeywords。'methodCalls.uploadNewFile.uploadFileToTest '(findTestObject(** null)、' ')** **

  4. 次に、上記3のnullを、上記1で作成したキーワードに置き換えてから、アップロードするファイルのファイルパスを上記3の「」に挿入します。

最終的なステートメントは次のようになります:CustomKeywords.'methodCalls.uploadNewFile.uploadFileToTest '(findTestObject(' Object Repository/Page_Add_Document_To_Current_Account/lnk_choose_a_file ')、' C:\ Users \…\Documents \…\…\ TestFile.txt ')

ではごきげんよう

0
A. Dada