我正在尝试使用 katalon studio 上传文件以进行自动化测试(网络测试。单击"浏览"按钮后,窗口弹出窗口将打开,但我无法选择照片或转到特定路径。我找到了一个命令WebUI.UploadFile((,但我认为我没有正确使用它。
如果有人有这样的事情,请分享你的经验。我怎么能在卡塔隆做到这一点?
您可以尝试此解决方案:
- 创建以下自定义关键字 (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); } }
- >将"上传文件"步骤替换为测试用例中的自定义关键字,例如:
CustomKeywords.'com.katalon.WebUICustomKeyword.uploadFile'(findTestObject('BrowseButton'), 'yourFileHere')
-
首先,为文件上传按钮或链接创建一个关键字,例如:"Object Repository/Page_Add_Document_To_Current_Account/lnk_choose_a_file">
-
接下来,创建一个将处理上传的方法调用,例如 类上传新文件 {
/** 此方法将用于上传文件 */@Keyword def uploadFileToTest(TestObject to, String filePath({ WebUI.click(to( WebUI.delay(3(//我建议添加此延迟,以便让代码有时间运行 StringSelect ss = new StringSelection(filePath( Toolkit.getDefaultToolkit((.getSystemClipboard((.setContent(ss, null( WebUI.delay(2(//原因与上述相同
机器人机器人 = 新机器人(( 机器人按键(KeyEvent.VK_ENTER( robot.keyRelease(KeyEvent.VK_ENTER(; 机器人按键(KeyEvent.VK_CONTROL(; 机器人按键(KeyEvent.VK_V(; robot.keyRelease(KeyEvent.VK_V(; robot.keyRelease(KeyEvent.VK_CONTROL(; 机器人按键(KeyEvent.VK_ENTER(; robot.keyRelease(KeyEvent.VK_ENTER(; } }
-
接下来,调用代码中需要它的位置的方法,它将如下所示:*自定义关键字。methodCalls.uploadNewFile.uploadFileToTest'(findTestObject(**null(, ''(***
接下来,将上面 3 中的 null 替换为您在上面的 1 中创建的关键字,然后将要上传的文件路径插入到上面 3 中的 '' 中。
最后的陈述是这样的:自定义关键字。methodCalls.uploadNewFile.uploadFileToTest'(findTestObject('Object Repository/Page_Add_Document_To_Current_Account/lnk_choose_a_file'(, 'C:\Users\...\Documents\...\...\TestFile.txt'(
万事如意