Java 使用命令行参数使用SeleniumWebDriver启动Electron应用程序
我有一个电子应用程序(Java 使用命令行参数使用SeleniumWebDriver启动Electron应用程序,java,selenium,selenium-webdriver,selenium-chromedriver,electron,Java,Selenium,Selenium Webdriver,Selenium Chromedriver,Electron,我有一个电子应用程序(chat.exe),使用以下代码片段,我可以用Chromedriver启动它: ChromeOptions选项=新的ChromeOptions(); options.setBinary(System.getenv(“CHAT”);//CHAT=CHAT.exe的路径 驱动程序=新的色度驱动程序(可选); 我的问题是:如何用命令行参数启动它 e、 g.chat.exe--electronPort 5000--WebPackagePort 3000--accessToken
chat.exe
),使用以下代码片段,我可以用Chromedriver启动它:
ChromeOptions选项=新的ChromeOptions();
options.setBinary(System.getenv(“CHAT”);//CHAT=CHAT.exe的路径
驱动程序=新的色度驱动程序(可选);
我的问题是:如何用命令行参数启动它
e、 g.chat.exe--electronPort 5000--WebPackagePort 3000--accessToken 123456789
我尝试了以下方法,但没有成功:
ChromeOptions选项=新的ChromeOptions();
options.setBinary(System.getenv(“CHAT”);//CHAT=CHAT.exe的路径
options.addArguments(“--electronPort 5000--webpackPort 3000--accessToken 123456789”);
驱动程序=新的色度驱动程序(可选);
将显示以下错误:
org.openqa.selenium.WebDriverException:无法访问chrome
ChromeOptions options = new ChromeOptions();
options.setBinary("/path/to/other/chrome/binary");
是在非标准位置设置Chrome可执行文件,而不是设置Chrome以外的任何其他可执行文件。因为您提供了chrome以外的二进制文件(在您的情况下是CHAT.exe),所以驱动程序会打开CHAT not chrome浏览器,并抱怨chrome无法访问
Webdriver仅用于自动化web应用程序,而不用于独立应用程序自动化。为此,您可以使用其他工具,如“AutoIt”
是在非标准位置设置Chrome可执行文件,而不是设置Chrome以外的任何其他可执行文件。因为您提供了chrome以外的二进制文件(在您的情况下是CHAT.exe),所以驱动程序会打开CHAT not chrome浏览器,并抱怨chrome无法访问
Webdriver仅用于自动化web应用程序,而不用于独立应用程序自动化。为此,您可以使用其他工具,如“AutoIt”。使用以下格式(如@user861594所指定):
以下格式有效(如@user861594所述):
也可用于自动化使用web技术创建的桌面应用程序(例如)我有很多场景正在运行中。>为了将chromedriver与Electron一起使用,你必须告诉它在哪里可以找到Electron,并让它认为Electron就是Chrome浏览器。在这种情况下,你的问题似乎是将参数传递给作为Chrome的应用程序。传递参数的语法是options.addArguments(“=”);因此,您应该尝试将每个选项设置为options.addArguments(“electronPort=5000”);options.addArguments(“webpackPort=3000”);options.addArguments(“accessToken=123456789”);谢谢你的评论。我也试过那样做,但还是不起作用。也可用于自动化使用web技术创建的桌面应用程序(例如)我有很多场景正在运行中。>为了将chromedriver与Electron一起使用,你必须告诉它在哪里可以找到Electron,并让它认为Electron就是Chrome浏览器。在这种情况下,你的问题似乎是将参数传递给作为Chrome的应用程序。传递参数的语法是options.addArguments(“=”);因此,您应该尝试将每个选项设置为options.addArguments(“electronPort=5000”);options.addArguments(“webpackPort=3000”);options.addArguments(“accessToken=123456789”);谢谢你的评论。我也试过那样做,但还是不起作用。
options.addArguments("<Key>=<value>");
options.addArguments("electron-port=5000");
options.addArguments("webpack-port=3000");
options.addArguments("access-token=123456789");