Die Protokolle der Browserkonsole sind leer, wenn der Test fehlschlägtPython

Python-Programme
Anonymous
 Die Protokolle der Browserkonsole sind leer, wenn der Test fehlschlägt

Post by Anonymous »

Ich versuche, Browserkonsolenprotokolle mit Selenium + Pytest zu erfassen, und hier ist mein aktueller Codeausschnitt:

Code: Select all

def test_capture_console_logs(driver, capture_browser_logs):

driver.get("https://www.google.com")

# Execute JavaScript to log information in the browser console

script = """

console.log('Info: This is a test log.');

console.warn('Warning: This is a warning log.');

console.error('Error: This is an error log.');

"""

driver.execute_script(script)

assert False

@pytest.fixture(scope="function")

def capture_browser_logs(driver):

yield

print("\n=== Attempting to capture browser logs ===")

try:

browser_logs = driver.get_log("browser")

print(f"Successfully retrieved {len(browser_logs)} log entries")

if browser_logs:

for entry in browser_logs:

print(f"[{entry['level']}] {entry['message']}")

except Exception as e:

print(f"Error retrieving logs: {e}")

print("=== End capture attempt ===")

Wenn ich mit „assert True“ ausführe, ist der Test erfolgreich und ich kann sehen, dass die Browserprotokolle erfolgreich erfasst wurden.

Code: Select all

=== Attempting to capture browser logs ===

Successfully retrieved 3 log entries

[INFO] console-api 3:16 "Info: This is a test log."

[WARNING] console-api 4:16 "Warning: This is a warning log."

[SEVERE] console-api 5:16 "Error: This is an error log."

=== End capture attempt ===

Wenn ich mit „assert False“ ausführe, schlägt der Test wie erwartet fehl, aber die Browserprotokolle sind leer (d. h. es wird ein leeres Array zurückgegeben).

Code: Select all

=== Attempting to capture browser logs ===

Successfully retrieved 0 log entries

=== End capture attempt ===

Warum sind die Browserprotokolle leer, wenn der Test fehlschlägt?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post