2017-01-19 3 views
2

auf Ich verwende Selenium in C# und möchte die clientseitigen Protokolle (wie console.log in Javascript) lesen.Rufen Sie clientseitige Protokolle in Selenium

ich die ChromeDriver bin Initialisierung und Einstellung der Protokollierung bevorzugt Auftraggeber:

ChromeOptions options = new ChromeOptions(); 
options.SetLoggingPreference(LogType.Client, LogLevel.All); 
var webDriver = new ChromeDriver(options); 
objectContainer.RegisterInstanceAs<IWebDriver>(webDriver); 

Allerdings, wenn ich versuchen, die AvailableLogTypes abzurufen:

var whatever = driver.Manage().Logs.AvailableLogTypes; 

browser und driver sind die einzige verfügbare Protokoll typen zu lesen von:

enter image description here

Wenn ich versuche, die Client-Protokolle zu erhalten:

var logs = driver.Manage().Logs.GetLog(LogType.Client); 

Ich erhalte eine Ausnahme:

An exception of type 'System.InvalidOperationException' occurred in WebDriver.dll but was not handled in user code

Additional information: unknown error: log type 'client' not found

Jede Idee, wie kann ich dieses Problem beheben? Es sieht so aus, als ob es standardmäßig auf browser und driver Logging zurückgeht, aber ich bin mir nicht sicher wo.

+3

hatte man Logtyp versucht zu ermöglichen Browser? Bitte überprüfen Sie http://StackOverflow.com/Questions/36455533/c-sharp-selenium-access-browser-log – derloopkat

+0

Ja, das sind nicht die Protokolle, die ich suche aber. – tnw

+0

Wenn Sie die Ausgabe von 'console.log' Javascript aufrufen möchten, dann ist' SetLoggingPreference (LogType.Browser, LogLevel.All) 'alles was Sie brauchen. Schaut euch den Artikel an, auf den @derloopkat zeigt. Nicht sicher, was Client wirklich bedeutet und ob es sogar von Chrome unterstützt wird. –

Antwort

0

Wenn Sie Protokolle wie console.log() wollen, dann denke ich LogType.Browser ist was Sie brauchen. Nur sicher machen, muss der Browser diese Protokolle

Wenn Sie nicht andere LogType sehen Sie, wie CLIENT, SERVER ... Sie können versuchen, diese Protokolltypen als Antwort in How to obtain native logger in Selenium WebDriver

+0

console.log() geht nicht in die Browser-Protokolle. Ich habe die Protokolle nach diesem Protokolliertyp durchsucht und sehe keine Konsolenprotokolle. Die Antwort, die Sie verlinkt haben, ist in Java und funktioniert nicht für C#. – tnw

+1

Eigentlich funktioniert es! Ich musste nur den Logging-Level auf "All" für den Browser setzen: 'options.SetLoggingPreference (LogType.Browser, LogLevel.All);' – tnw

+0

@ tnw, das war eigentlich derloopkat Vorschlag (+ ich beharrte) ... du ' Geben Sie nicht die Punkte an die, die es verdient haben (Derloopkat). –