2013-04-04 4 views
5

Я выполняю тесты на Ruby unit против Chrome с помощью watir-webdriver. Всякий раз, когда тест запускается и chromedriver.exe запущен вывод, подобный ниже появится: неОтключение регистрации ChromeDriver.exe

Started ChromeDriver 
port=9515 
version=26.0.1383.0 
log=C:\Home\Server\Test\Watir\web\chromedriver.log 
[5468:8796:0404/150755:ERROR:accelerated_surface_win.cc(208)] Reseting D3D device 
[5468:8996:0404/150758:ERROR:textfield.h(156)] NOT IMPLEMENTED 
[WARNING:..\..\..\..\flash\platform\pepper\pep_module.cpp(63)] SANDBOXED 

Ни одно из этих воздействий правильного функционирования тестов, но как можно было бы представить себе появление «ERROR» и «ВНИМАНИЕ» может быть довольно запутанным, например, в правилах разбора в Дженкинсе, ищущем неудачи. Конечно, в правилах синтаксического анализа я могу получить представление о регулярном выражении, но было бы неплохо отключить этот подробный и ненужный журнал со стороны chromedriver.exe. Я видел много упоминаний об этом поиске ответа. Никто не придумал решение. Да, chromedriver, возможно, имеет параметр «-silent», но, похоже, нет способа передать это исполняемому файлу. Код, аналогичный приведенному ниже, должен работать, но, насколько я вижу, имеет нулевой эффект. Есть идеи?

profile = Selenium::WebDriver::Chrome::Profile.new 
profile['--cant-make-any-switches-work-here-how-about-you'] = true 
browser = Watir::Browser.new :chrome, :profile => profile, :switches => %w[--ignore-certificate-errors --disable-extensions --disable-popup-blocking --disable-translate--allow-file-access] 
+0

Hi Kevin, переключатель -silent и он работает с ЦМД. Однако я не уверен, как вы можете передать это в свой сценарий. –

ответ

2

Вот помощь для тех, кто еще в поисках

Найти ... selenium\webdriver\chrome\service.rb начало Путь может отличаться в вашей системе

И я добавил «-silent» с передаваемыми параметрами .... Однако , это затмило все, кроме сообщений об ошибках/предупреждениях.

def initialize(executable_path, port) 
     @uri   = URI.parse "http://#{Platform.localhost}:#{port}" 
     server_command = [executable_path, " -silent", "--port=#{port}"] 

     @process  = ChildProcess.build(*server_command) 
     @socket_poller = SocketPoller.new Platform.localhost, port, START_TIMEOUT 

     @process.io.inherit! if $DEBUG == true 
    end 
1

Я был в состоянии отвлечь сотни, да сотни, лог сообщений драйвера хром, которые были показаны в огуречной стандартный вывод, используя: service_log_path аргумент.

@browser = Watir::Browser.new :chrome, :service_log_path => 'chromedriver.out' 

'-silent' или '--silent', или "-silent' или ' --silent' параметр предложенных выше ничего не сделал, когда я добавил его в ...selenium\webdriver\chrome\service.rb. И необходимость настройки самого драгоценного камня не является особенно жизнеспособным решением.

я не мог найти место, чтобы захватить chromedriver STDERR и отвлечь его обнулить (не говоря уже о необходимости обращаться делать, что в окнах и в * NIX/OSX)

Водитель должен по умолчанию к чему-то образом менее подробный. В этом случае INFO слишком сложна, так как сотни записей журналов выходят как INFO, причем 90% + идентичны.

По меньшей мере: service_log_path аргумент работает большинство из них.

0

Вы можете попробовать -Dwebdriver.chrome.logfile="/dev/null" и/или -Dwebdriver.chrome.args="--disable-logging" к опционам Java, который работает selenium-server-standalone-what.ever.jar

2

установить chromeOptions с key --log-level=3 это должно закрыть его