我尝试使用katalon studio上传文件进行自动化测试(网络测试。点击'浏览'按钮后,Windows弹出窗口打开,但我无法选择照片或去特定路径。我找到了一个命令 WebUI.UploadFile(),但我认为我没有正确使用它。
如果有人有类似的话,请分享您的经验。我怎么能在katalon做到这一点?
答案 0 :(得分:9)
您可以尝试使用此解决方案:
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')
答案 1 :(得分:0)
首先,为文件上传按钮或链接创建一个关键字,例如: “对象存储库/ Page_Add_Document_To_Current_Account / lnk_choose_a_file”
接下来,创建一个处理上载的方法调用,例如 类uploadNewFile {
/ ** 此方法将用于上传文件 * / @关键词 def uploadFileToTest(TestObject to,String filePath){ WebUI.click(到) WebUI.delay(3)//我建议添加此延迟,以使代码有时间运行 StringSelection ss =新的StringSelection(filePath) Toolkit.getDefaultToolkit()。getSystemClipboard()。setContents(ss,null) WebUI.delay(2)//与上述原因相同
机器人机器人= new机器人() 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.‘methodCalls.uploadNewFile.uploadFileToTest’(findTestObject(** null ),‘’)***
接下来,将上面3中的null替换为您在上面1中创建的关键字,然后将要上传的文件的文件路径插入上面3中的“’”中。
最终声明将类似于: CustomKeywords。“ methodCalls.uploadNewFile.uploadFileToTest”(findTestObject(“对象存储库/ Page_Add_Document_To_Current_Account / lnk_choose_a_file”), ‘C:\ Users \…\ Documents \…\…\ TestFile.txt’)
祝一切顺利