2013-04-04 45 views
5

Tôi đang chạy thử nghiệm đơn vị ruby ​​đối với Chrome bằng cách sử dụng trình quản lý web watir. Bất cứ khi nào một thử nghiệm được chạy và chromedriver.exe được đưa ra đầu ra tương tự như dưới đây sẽ xuất hiện:Im lặng nhật ký 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 

Không ai trong số những tác động này đúng chức năng của các bài kiểm tra, nhưng khi người ta có thể tưởng tượng sự xuất hiện của "ERROR" và "CẢNH BÁO" có thể khá khó hiểu, ví dụ, phân tích cú pháp quy tắc trong Jenkins tìm kiếm thất bại. Chắc chắn tôi có thể nhận được thực sự ưa thích với biểu thức chính quy trong các quy tắc phân tích cú pháp, nhưng nó sẽ được thực sự tốt đẹp để tắt đăng nhập tiết và tiết không cần thiết này trên một phần của chromedriver.exe. Tôi đã thấy nhiều đề cập đến việc tìm kiếm câu trả lời này. Không ai đã đưa ra một giải pháp. Có, chromedriver có thể có một tùy chọn "- đơn giản", nhưng dường như không có cách nào để chuyển nó đến tệp thực thi. Mã tương tự như dưới đây là nghĩa vụ phải làm việc, nhưng không có hiệu lực như xa như tôi có thể nhìn thấy. Bất kỳ ý tưởng?

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, công tắc là -silent và nó hoạt động từ cmd. Tuy nhiên tôi không chắc chắn làm thế nào bạn có thể vượt qua điều này để kịch bản của bạn .. –

Trả lời

2

Dưới đây là giúp đỡ cho bất cứ ai khác tìm kiếm

Tìm ... selenium\webdriver\chrome\service.rb Đường dẫn đầu có thể khác nhau trên hệ thống

của bạn Và tôi nói thêm "-silent" để các thông số thông qua .... Tuy nhiên , điều này đã tắt tiếng mọi thứ trừ thông báo lỗi/cảnh báo.

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

Tôi có thể chuyển hàng trăm, có hàng trăm thông báo nhật ký trình điều khiển chrome đã hiển thị trong stdout bằng dưa chuột bằng cách sử dụng đối số: service_log_path.

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

các '-silent', hoặc '--silent', hoặc '-silent', hoặc ' --silent' tham số gợi ý ở trên đã không làm gì khi tôi thêm nó vào ...selenium\webdriver\chrome\service.rb. Và phải tinh chỉnh đá quý, chính nó không phải là một giải pháp đặc biệt khả thi.

tôi không thể tìm thấy một nơi để nắm bắt được stderr chromedriver và chuyển nó thành vô giá trị (chưa kể đến việc phải xử lý làm điều đó trong cửa sổ và trong * nix/OSX)

Người tài xế nên mặc định cho một cái gì đó cách ít tiết. Trong trường hợp này, INFO quá phức tạp vì hàng trăm mục nhật ký xuất hiện dưới dạng INFO, 90% + chúng giống hệt nhau.

Ít nhất đối số: service_log_path hoạt động hầu hết trong số chúng.

0

Bạn có thể thử -Dwebdriver.chrome.logfile="/dev/null" và/hoặc -Dwebdriver.chrome.args="--disable-logging" để các tùy chọn của java chạy selenium-server-standalone-what.ever.jar

2

thiết chromeOptions với key --log-level=3 này nên đóng nó lên

Các vấn đề liên quan