我有一个Electron应用程序(chat.exe
)并使用以下代码片段我可以使用 Chromedriver 启动它:
ChromeOptions options = new ChromeOptions();
options.setBinary(System.getenv("CHAT")); // CHAT = path to Chat.exe
driver = new ChromeDriver(options);
我的问题是:如何使用命令行参数启动它?
e.g。 chat.exe -- --electronPort 5000 --webpackPort 3000 --accessToken 123456789
我尝试了以下方式,但没有奏效:
ChromeOptions options = new ChromeOptions();
options.setBinary(System.getenv("CHAT")); // CHAT = path to Chat.exe
options.addArguments("-- --electronPort 5000 --webpackPort 3000 --accessToken 123456789");
driver = new ChromeDriver(options);
显示以下错误:
org.openqa.selenium.WebDriverException: chrome not reachable
答案 0 :(得分:1)
以下格式有效(如@ user861594指定):
options.addArguments("<Key>=<value>");
然而,问题是chromedriver不能采用camelCase格式的参数。在开发人员将cll args的语法从camelCase修改为连字符后,上述解决方案起作用。
e.g。
options.addArguments("electron-port=5000");
options.addArguments("webpack-port=3000");
options.addArguments("access-token=123456789");
答案 1 :(得分:0)
ChromeOptions options = new ChromeOptions();
options.setBinary("/path/to/other/chrome/binary");
要在非标准位置设置Chrome可执行文件,而不是设置除chrome之外的任何其他可执行文件。因为您提供的不是chrome二进制文件(在您的情况下是CHAT.exe)驱动程序打开CHAT而不是chrome浏览器并且抱怨chrome无法访问。
Webdriver仅用于自动化Web应用程序,而不用于独立应用程序自动化。为此,您可以使用其他工具,如“AutoIt”。