开箱即用,您不能使用 selenium 在本地计算机上运行命令。Selenium/Webdriver 是一个浏览器测试工具,只能与浏览器交互。
根据您的评论更新答案
两种方式的共同部分(我认为您已经知道)在您的 java 代码中,您应该拥有执行步骤 1 和 2 的 webdriver/selenium 命令的代码。您的 java 代码也应该包含逻辑/code 作为步骤 3 执行 linux 命令。步骤 4 应该再次成为您的 webdriver 命令。
此测试代码应从 linux 服务器运行,以便 java 命令执行将在 linux 框中发生。
现在唯一悬而未决的部分是在远程机器上执行测试。
方法1不使用网格
在 windows 机器上启动 selenium 服务器。将您的 java 测试指向在这台机器上运行的 selenium 服务器。如果你的 windows 机器 IP 是 10.0.0.1,你应该初始化 webdriver 对象为
WebDriver wd = new RemoteWebDriver(new URL("http://10.0.0.1:4444/wd/hub"),DesiredCapabilities.Firefox());
这会将您所有的 webdriver 命令发送到在 10.0.0.1 端口 4444 上运行的 selenium 服务器。然后您的测试将在 Windows 机器中执行。为此,您的 linux 服务器和 windows 机器应该在同一个网络中。
方法 2 使用网格。
和上面一样,但是不要给出 windows 机器的 ip/dns 名称,而应该给出集线器机器的 ip/dns 名称。您还应该将 Windows 机器注册为该集线器的 RC。