java - 如何在bamboo headless中上传带有selenium的文件

标签 java linux selenium google-chrome headless-browser

我正在尝试通过 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>&nbsp;
    <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/

相关文章:

java - 如何分割这个字符串

c++ - 跨平台 C++ : Use the native string encoding or standardise across platforms?

python - 使用 selenium 在 python 中切换到弹出窗口

java - junit 数据驱动测试指定何时提供新数据

支持实体-属性-值模型的 Java 框架

Java - 解析行

java - 是否可以直接从jvm应用程序登录到Logstash?

linux - 并行脚本中的 Bash 重定向

python - 将 ruby​​ 变量导出到父进程

python - 如何导航上下文菜单(Selenium、Python)