【问题标题】:How to upload a file/photo using katalon studio?如何使用katalon studio上传文件/照片?
【发布时间】:2018-01-05 23:25:18
【问题描述】:
我正在尝试使用katalon studio上传文件以进行自动化测试(网络测试。单击“浏览”按钮后,窗口弹出窗口已打开,但我无法选择照片或转到特定路径。我找到了一个命令WebUI.UploadFile() 但我认为我没有正确使用它。
如果有人有类似情况,请分享您的经验。我怎么能在katalon中做到这一点?
【问题讨论】:
标签:
testing
automation
automated-tests
browser-automation
katalon-studio
【解决方案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);
}
}
- 用您的测试用例中的自定义关键字替换“上传文件”步骤,例如:
CustomKeywords.'com.katalon.WebUICustomKeyword.uploadFile'(findTestObject('BrowseButton'), 'yourFileHere')
【解决方案2】:
-
首先,为文件上传按钮或链接创建一个关键字,例如:“Object Repository/Page_Add_Document_To_Current_Account/lnk_choose_a_file”
李>
-
接下来,创建一个用于处理上传的方法调用,例如
类上传新文件 {
/**
此方法将用于上传文件
*/
@关键词
def uploadFileToTest(TestObject to, String filePath){
WebUI.click(到)
WebUI.delay(3) //我建议添加这个延迟来让代码有时间运行
字符串选择 ss = 新字符串选择(文件路径)
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(ss, null)
WebUI.delay(2) //同上原因
机器人机器人 = 新机器人()
机器人.keyPress(KeyEvent.VK_ENTER)
机器人.keyRelease(KeyEvent.VK_ENTER);
机器人.keyPress(KeyEvent.VK_CONTROL);
机器人.keyPress(KeyEvent.VK_V);
机器人.keyRelease(KeyEvent.VK_V);
机器人.keyRelease(KeyEvent.VK_CONTROL);
机器人.keyPress(KeyEvent.VK_ENTER);
机器人.keyRelease(KeyEvent.VK_ENTER);
}
}
接下来,调用代码中需要的方法,它会显示如下:
*CustomKeywords.'methodCalls.uploadNewFile.uploadFileToTest'(findTestObject(**null), '')***
接下来,将上面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’)
一切顺利