java如何在automation(selenium webdriver)中通过无头浏览器中的窗口弹出将文件上载到web浏览器
我需要通过selenium中的弹出窗口将文本文件上传到我的网页(通过单击浏览)
我用机器人课下面的动作来做这件事
public void uploadFileUsingRobot(String filePath) throws AWTException,Exception{
StringSelection path = new StringSelection(filePath);
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(path, null);
Robot r = new Robot();
r.keyPress(KeyEvent.VK_ENTER);
r.keyRelease(KeyEvent.VK_ENTER);
r.keyPress(KeyEvent.VK_CONTROL);
r.keyPress(KeyEvent.VK_V);
r.keyRelease(KeyEvent.VK_V);
r.keyRelease(KeyEvent.VK_CONTROL);
r.keyPress(KeyEvent.VK_ENTER);
r.keyRelease(KeyEvent.VK_ENTER);
}
它在我的本地工作得很好。但是当我通过bamboo
计划运行这个时,它并没有像竹子一样运行headless browser
中的代码
有人能建议我如何在headless browser
上传文件吗
# 1 楼答案
当您在竹子上执行代码时,可能会使用远程驱动程序。要上载文件,可以使用sendKeys将filepath设置为文件输入字段,并使用fileDetector
解决方案:
如果您有文件输入字段
然后下面的代码将设置文件路径
Here you have an article描述解决方案
您可能遇到的问题:
获取remoteWebDriver。这里有一种方法你可以试试
隐藏(未显示)文件输入字段。如果html是:
然后,您需要在执行代码设置文件路径时显示它:
# 2 楼答案
Java脚本执行器和使用robot不健壮。他们在工作,有时会失败。我试过AutoIt,即使在无头/远程浏览器中,它也工作得非常好