Передача параметров в chrome driver 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.бревно [1214/161331: ошибка: ipc_sync_channel.cc (378)] отмена отложенных отправлений [1214/161331: ошибка: ipc_sync_channel.cc (378)] отмена отложена послать [1214/161331: ошибка: ipc_sync_channel.cc (378)] отмена отложена sendsBlockquote

4 ответов


намекнул на это билет Chromedriversilent вариант), я посмотрел в источнике 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.сосуд." "AllTests" - это имя моего класса, содержащего public static void main(String[] args) - это запускает свои тесты.

другие параметры самоочевидны, отрегулируйте его к вашим потребностям. Для удобства (используется в shell / batch script), я объявил общий каталог в переменной DIR.


попробовать "--disable-logging" вместо этого.

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

когда я настраивал chrome с

  selenium-chrome-driver-2.48.2.jar
  chromedriver 2.20
  selenium-java-2.48.2.jar

ни один из вышеперечисленных ответов работал для меня, Поскольку я вижу, что некоторым ответам несколько лет, я опубликую то, что сработало для меня.

    ChromeOptions chromeOptions = setupChromeOptions();
    System.setProperty("webdriver.chrome.logfile", "\path\chromedriver.log");
    System.setProperty("webdriver.chrome.driver", "\path\chromedriver.exe");
    System.setProperty("webdriver.chrome.args", "--disable-logging");
    System.setProperty("webdriver.chrome.silentOutput", "true");
    driver = new ChromeDriver(chromeOptions);

начиная с Selenium 3, по крайней мере, вы можете использовать ChromeDriverService и его внутренний конструктор классов, чтобы иметь возможность запускать драйвер в автоматическом режиме.

oneliner для этого:

new ChromeDriver(new ChromeDriverService.Builder().withSilent(true).build());

конструктор прямолинейен, вы создаете новый параметр Service builder silent в true (это критическая часть), и Вы, наконец, строите его в ChromeDriverService, который требуется конструктором ChromeDriver.