gpt4 book ai didi

java - 有没有办法在 headless chrome中使用selenium上传文件?

转载 作者:行者123 更新时间:2023-12-02 01:41:59 27 4
gpt4 key购买 nike

我正在创建一个需要上传文件的脚本,所以我写了如下内容:

    @FindBy(css = "div[title='Add an attachment'] button")
private WebElementFacade FILE_UPLOAD_BUTTON;

Path path = Paths.get(System.getProperty("user.dir"));

withTimeoutOf(20, TimeUnit.SECONDS).waitFor(ExpectedConditions.visibilityOf(FILE_UPLOAD_BUTTON));
FILE_UPLOAD_BUTTON.click();

filePath = Paths.get(path.toString(), "FolderName", "ActualFileName.pdf");

StringSelection fullPath = new StringSelection(filePath.toString());
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
clipboard.setContents(fullPath, fullPath);

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);
pause(2000);

它工作正常,但在 headless Chrome 中则不行。关于如何在 Headless chrome 中上传文件有什么想法吗? TIA。

编辑:已添加inquiry to serenity wakaleo 怀疑 Robot 类能否在 headless chrome 上工作,因为它与真实的 UI 交互。我还尝试了他的建议,使用标准 Selenium 操作,例如 chord org.openqa.selenium.Keys; 和 actions org.openqa.selenium.interactions.Actions; ,但两者仍然没有不工作

最佳答案

它不起作用,因为您使用的是 Robot 类,这对于 headless 执行来说并不理想,因为浏览器无论如何都不可见。

确保您的上传元素可见。

之后您上传以下内容:

driver.findElement(By.id("uploadElement")).sendKeys("path/to/file");

关于java - 有没有办法在 headless chrome中使用selenium上传文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54342287/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com