【问题标题】:Docker & Selenium-Java :- Unable to upload Image/file in chrome browser running on a docker containerDocker & Selenium-Java :- 无法在 docker 容器上运行的 chrome 浏览器中上传图像/文件
【发布时间】:2021-09-17 16:26:03
【问题描述】:

我在 docker 容器上使用远程驱动程序运行 selenium 测试用例。

我想将文件上传到运行在容器上的 chrome 浏览器。

我尝试了以下方法:-

  1. 将文件从我的本地系统(MyDocuments 文件夹)复制到 docker 容器。 当我点击上传按钮时,我不知道如何浏览文件夹并上传文件。

我试过了,但在“input.sendKeys(imagePath);”我收到消息“元素不可交互”:- https://stackoverflow.com/a/54810763

  1. 我正在容器上运行测试用例,但屏幕截图保存在我的本地计算机上。是否有可能我也可以从本地机器而不是容器上传文件

【问题讨论】:

  • 嗨 Juhi,您是否尝试过将当前工作目录挂载到 hub 容器?更多详情请参考this答案。
  • 我已使用 docker cp 命令将本地系统中所需的文件夹添加到 docker 容器中。但是当我在容器中运行我的测试用例以上传文件时,我单击上传按钮并打开一个文件夹弹出窗口,我不确定如何使用 selenium 提供路径或浏览文件夹
  • 在 selenium 中上传文件,实际上不需要点击上传按钮来打开操作系统级别的文件选择器。您基本上需要通过sendkeys将文件的绝对路径发送到其相应的输入标签。
  • 您也可以分享一个您尝试上传文件的元素的 html sn-p 吗?
  • 我要上传文件的元素不在输入标签下。它在一个跨度标签中

标签: java docker selenium file-upload selenium-remotedriver


【解决方案1】:
  1. 识别输入元素并上传文件
  2. 使用文件检测器从本地计算机上传文件

字符串文件名 = "Test.jpeg";

driver.setFileDetector(new LocalFileDetector());

WebElement element = driver.findElement(By.xpath("//input[text()='上传文件']"));

File file = new File("我要上传此位置的图片");

element.sendKeys(file.getAbsolutePath());

【讨论】:

    猜你喜欢
    • 2021-03-14
    • 2019-05-07
    • 1970-01-01
    • 2018-08-20
    • 1970-01-01
    • 2016-01-05
    • 2018-06-08
    • 1970-01-01
    • 2017-05-07
    相关资源
    最近更新 更多