如何在不使用 autoit 且仅使用 selenium 和 java 的情况下上传文件?

How to upload a file without using autoit and with only using selenium and java?

这是文件上传不起作用的按钮检查元素

<button class="btn btn-success text-capitalize" id="ac-btn-imprt" type="button">Browse File</button>

所以当我尝试发送密钥时,它不起作用,因为对于发送密钥,它必须是输入标签,在我的例子中是 type=button

提前致谢。

备注

  1. 我正在使用带有 java 的 selenium 来自动化我的应用程序。

  2. 我使用过间歇性工作的机器人 class,我无法调试机器人 class 实现,因为我还没有使用它。

如果您使用 RemoteWebDriver,请将 LocalFileDetector 添加到驱动程序:

driver.setFileDetector(new LocalFileDetector());

在HTML中找到隐藏的<input type="file">并发送密钥到文件的绝对路径。

您可以找到的详细信息:

How to upload file using Selenium WebDriver in Java

https://sqa.stackexchange.com/questions/12851/how-can-i-work-with-file-uploads-during-a-webdriver-test

您可以使用 ROBOT API jar 上传文件。 只需触发浏览按钮,当您需要提供要上传的文件的位置时,使用 Robot API 发送位置,然后再次使用 Robot API 按下回车键。

try {
        //Setting clipboard with file location
        setClipboardData(fileLocation);
        //native key strokes for CTRL, V and ENTER keys
        Robot robot = new Robot();

        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);
    } catch (Exception exp) {
        exp.printStackTrace();
    }