一尘不染

将选项传递给Chrome驱动程序selenium

selenium

我正在尝试禁用Chrome控制台的输出。如果我通过–start-maximized选项,则可以正常工作。我可能输入了错误的命令?

DesiredCapabilities capabilities = DesiredCapabilities.chrome();
capabilities.setCapability("chrome.switches", Arrays.asList("--silent"));
chrome = new ChromeDriver(_chromeservice,capabilities);

我也试过

 ChromeOptions options = new ChromeOptions();
 options.addArguments("silent");
 chrome = new ChromeDriver(options);

输出量

已启动的ChromeDriver端口= 26703版本= 23.0.1240.0 log = / Brett / workspace / TestNG
/ chromedriver.log
[1214/161331:ERROR:ipc_sync_channel.cc(378)]取消待处理的发送[1214/161331:ERROR:ipc_sync_channel.cc(
378)]取消挂起的发送[1214/161331:ERROR:ipc_sync_channel.cc(378)]取消挂起的sendsBlockquote


阅读 281

收藏
2020-06-26

共1个答案

一尘不染

在这张Chromedriver票证(关于该silent选件)的提示下,我查看了的来源ChromeDriverService.java,并找到了对的引用"webdriver.chrome.logfile"

添加-Dwebdriver.chrome.logfile="/dev/null"到我的java命令后,日志再次变得可读:无用的ChromeDriver日志消失了,而System.out.println调用和异常仍显示在控制台中。

我从java以下参数开始(Linux / Mac):

DIR=path/to/dir/containing/selenium/and/stuff
cd "$DIR" && java -cp "$DIR\
:$DIR/output\
:$DIR/bin/selenium-server-standalone-2.33.0.jar" \
-Dwebdriver.chrome.driver="$DIR/bin/chromedriver" \
-Dwebdriver.chrome.args="--disable-logging" \
**-Dwebdriver.chrome.logfile="/dev/null"** \
AllTests

如果您使用的是Windows:

set DIR=path\to\dir\containing\selenium\and\stuff
cd "%DIR%" && java -cp "%DIR%;%DIR%\output;%DIR%\bin\selenium-server-standalone-2.33.0.jar" ^
-Dwebdriver.chrome.driver="%DIR%\bin\chromedriver.exe" ^
-Dwebdriver.chrome.args="--disable-logging" ^
**-Dwebdriver.chrome.logfile=NUL** ^
AllTests

我的类路径(-cp)的组成说明:我的测试位于“ $ DIR / output”目录中。Selenium jar文件位于“ $ DIR / bin /
selenium-server-standalone-2.33.0.jar”中。“ AllTests”是我的类的名称,public static void main(String[] args)这将启动我的测试。

其他参数不言自明,请根据需要进行调整。为了方便起见(用于shell / batch脚本中),我在变量中声明了common目录DIR

2020-06-26