我正在尝试通过 selenium 中的浏览器测试文件上传。
设置:Mac 上的 Eclipse、Linux、Java、Chrome 上的 Selenium in Bamboo
在我的网站上,文件上传通过按钮进行。此按钮打开 native 浏览器文件上传对话框(无需输入;按钮在 ng-click 上调用 JS)。
<button class="cs-button-link-01" ng-click="uploadFile()" ng-if="context.permissions.edit">
<i class="cs-icon cs-icon-circle-plus cs-iconsize-200"></i>
<span cs-translate="'csAssetFileListWidget.AddFileBtn'">File</span>
</button>
因此,文件上传在 Mac 上运行良好,并且在我的 Mac 上使用机器人类,如 File Upload using Selenium WebDriver and Java Robot Class 对于 Linux,它适用于:
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_V);
robot.keyRelease(KeyEvent.VK_V);
robot.keyRelease(KeyEvent.VK_CONTROL);
robot.delay( 1000 * 4 );
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER);
但是现在我有一个问题,我想在 Bamboo 上运行它(在 Linux 上, headless )。 (AutoIt 无法工作,因为它有 4 个窗口)
您有什么想法可以解决这个问题吗?
最佳答案
正文下方或末尾应该有一个输入元素。他将接受从 native “选择文件”窗口中选择的文件,该窗口对于每个操作系统都不同。
如果将文件路径发送到此输入将触发输入。 示例:
<input type="text" id="drive_hist_state" name="drive_hist_state" style="display:none;">
WebElement input = driver.findElement(By.id("drive_hist_state"));
input.sendKeys("/path/to/file/test.txt");
关于java - 如何在bamboo headless中上传带有selenium的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61403065/