如何在 Linux 服务器上使用 Selenium Java 上传文件(Headless 模式)

问题描述 投票:0回答:1

场景:Selenium-Java Linux 当单击上传按钮时,资源管理器将打开。 然后需要粘贴路径并需要点击打开。

同样在 Windows 中使用 Robot/Sikuli/AutoIt 工作

但是尝试了不同的方法在 Linus 服务器中执行相同的操作但失败了。有线索吗??

在 Linux 服务器中无法正常上传

我没有输入标签

java linux selenium-webdriver file-upload pipeline
1个回答
0
投票

在 Java 中使用 Selenium 上传文件是一项常见任务,无论您是在本地计算机还是 Linux 服务器上运行测试,该过程通常都是相同的。但是,在服务器上运行测试有一些特定的注意事项。 1-设置 WebDriver。 2-找到文件输入元素。 3-将文件路径发送到输入元素。 这个例子

WebElement fileInput = driver.findElement(By.id("fileInputId")); fileInput.sendKeys("/path/to/your/file.txt");

4-提交表格(如果需要)。 试试这个。

WebElement form = driver.findElement(By.id("formId")); form.submit(); 
5- 处理任何文件上传对话框(如果存在)。 这是使用 Robot 类的示例:

import java.awt.*;
import java.awt.datatransfer.StringSelection;
import java.awt.event.KeyEvent;
StringSelection stringSelection =new StringSelection("/path/to/your/file.txt");
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(stringSelection, null);
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);
© www.soinside.com 2019 - 2024. All rights reserved.