在selenium网格上创建并上传文件

dan*_*nto 6 java selenium-grid selenium-webdriver

我的一个测试用例是将文件上传到应用程序.通过创建伪造文件并获取文件的绝对路径并填充输入字段并单击上载,可以轻松完成Witouth网格.但是,当我使用网格时,该文件不在托管该节点的计算机上.无论如何要么将文件发送到节点或告诉节点创建文件并获取绝对路径.

Ard*_*sco 12

一旦你知道如何设置本地文件检测器,它实际上非常简单.

import org.openqa.selenium.remote.LocalFileDetector
import org.openqa.selenium.remote.RemoteWebDriver

WebDriver driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), DesiredCapabilities.firefox());
driver.setFileDetector(new LocalFileDetector())
Run Code Online (Sandbox Code Playgroud)

然后只需正常上传,Selenium将通过线路将文件触发到节点.

  • 开发人员的幽默印象深刻 - 只有两个FileDetector实现:一个是提到LocalFileDetector,另一个是UselessFileDetector",它永远找不到任何东西":) (2认同)
  • nitpicking - setFileDetector不能在驱动程序对象上调用,但驱动程序需要向下转换为RemoteWebDriver - `((RemoteWebDriver)驱动程序).setFileDetector(new LocalFileDetector());` (2认同)

use*_*450 -2

您可以在本地计算机上创建文件时以正常方式执行此操作。见下文,

File file = new File("\\\\00.00.00.00\\c$\\somefile.txt");
file.createNewFile();
Run Code Online (Sandbox Code Playgroud)

这将在远程计算机上的“C”驱动器中创建一个名为 somefile.txt 的文件。将 IP 地址更改为您的远程计算机。

  • 嗯..但是当我在硒网格中运行它时,节点有点随机,对吧?我不知道它将运行在哪个节点 (2认同)