如何使用katalon studio上传文件/照片?

时间:2017-07-30 08:57:28

标签: testing automation automated-tests browser-automation katalon-studio

我尝试使用katalon studio上传文件进行自动化测试(网络测试。点击'浏览'按钮后,Windows弹出窗口打开,但我无法选择照片或去特定路径。我找到了一个命令 WebUI.UploadFile(),但我认为我没有正确使用它。

如果有人有类似的话,请分享您的经验。我怎么能在katalon做到这一点?

2 个答案:

答案 0 :(得分:9)

您可以尝试使用此解决方案:

  1. 创建以下自定义关键字(https://docs.katalon.com/display/KD/Define+custom+keywords):
  2. 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. 替换'上传文件'改为在测试用例中使用该自定义关键字,例如:
    2. CustomKeywords.'com.katalon.WebUICustomKeyword.uploadFile'(findTestObject('BrowseButton'), 'yourFileHere')
      

答案 1 :(得分:0)

  1. 首先,为文件上传按钮或链接创建一个关键字,例如: “对象存储库/ Page_Add_Document_To_Current_Account / lnk_choose_a_file”

  2. 接下来,创建一个处理上载的方法调用,例如 类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);    } }

  3. 接下来,在代码中需要的地方调用该方法,它将显示为: * CustomKeywords.‘methodCalls.uploadNewFile.uploadFileToTest’(findTestObject(** null ),‘’)***

  4. 接下来,将上面3中的null替换为您在上面1中创建的关键字,然后将要上传的文件的文件路径插入上面3中的“’”中。

最终声明将类似于: CustomKeywords。“ methodCalls.uploadNewFile.uploadFileToTest”(findTestObject(“对象存储库/ Page_Add_Document_To_Current_Account / lnk_choose_a_file”), ‘C:\ Users \…\ Documents \…\…\ TestFile.txt’)

祝一切顺利