File upload 如何使用按钮标签在无头模式下上载文件

File upload 如何使用按钮标签在无头模式下上载文件,file-upload,katalon-studio,File Upload,Katalon Studio,我尝试在无头模式下运行文件上传,我尝试了不同的方法,但没有成功。如何在无头模式下上传文件 DOM中的导入按钮如下所示: 这不是输入标签,我不确定这是否会影响结果 我需要它在无头模式下运行 以下是我尝试过的所有方法: 使用WebUI.uploadFile关键字 无法在默认模式和无头模式下工作 定义自定义关键字,如下所示: 公共类MyTools{ @关键词 def上传文件(TestObject-to,字符串文件路径){ WebUI.click(to) WebUI.delay(2) StringSe

我尝试在无头模式下运行文件上传,我尝试了不同的方法,但没有成功。如何在无头模式下上传文件

  • DOM中的导入按钮如下所示:
  • 这不是输入标签,我不确定这是否会影响结果

  • 我需要它在无头模式下运行 以下是我尝试过的所有方法:

  • 使用WebUI.uploadFile关键字
  • 无法在默认模式和无头模式下工作

  • 定义自定义关键字,如下所示:
  • 公共类MyTools{
    @关键词
    def上传文件(TestObject-to,字符串文件路径){
    WebUI.click(to)
    WebUI.delay(2)
    StringSelection ss=新的StringSelection(文件路径);
    Toolkit.getDefaultToolkit().getSystemClipboard().setContents(ss,null);
    机器人=新机器人();
    机器人按键(KeyEvent.VK_控制);
    机器人。延迟(1000)
    robot.keyPress(KeyEvent.VK_V);
    robot.keyrease(KeyEvent.VK_V);
    robot.delay(1000)//注意延迟(50010001500可能适合您)
    robot.keyRelease(KeyEvent.VK_控制);
    robot.keyPress(KeyEvent.VK_ENTER);
    robot.keyRelease(KeyEvent.VK_ENTER);
    }
    }
    
    这种方式可以在默认Chrome模式下运行,但在headless模式下总是失败

  • 使用以下代码:
  • WebDriver-driver=DriverFactory.getWebDriver()
    字符串路径='D:\\Daily task\\New PW User.csv'
    findElement(By.xpath(“//*[@id='app']/div/section/div/section[1]/div[1]/div/button”)).sendKeys(路径);
    
    在默认模式和无头模式下均不工作


    有人能帮我吗?

    机器人类不能在无头模式下工作,至少是这样

    此外,我认为您不需要它(不清楚为什么在您的示例中需要它)。尝试将
    uploadFile()
    方法更改为:

        @Keyword
        def uploadFile (TestObject to, String filePath) {
            WebUI.click(to)
            WebUI.delay(2)
            WebElement element = WebUiCommonHelper.findWebElement(to, 30)
            element.sendKeys(filePath)
        }
    
    注意:

    您需要导入
    com.kms.katalon.core.webui.common.WebUiCommonHelper
    ,以便将测试对象转换为web元素