@@ -98,6 +98,15 @@ def get_screen_orientation(driver, context_id):
9898 return {"type" : orientation_type , "angle" : orientation_angle }
9999
100100
101+ def get_browser_user_agent (driver ):
102+ result = driver .script ._evaluate (
103+ "navigator.userAgent" ,
104+ {"context" : driver .current_window_handle },
105+ await_promise = False ,
106+ )
107+ return result .result ["value" ]
108+
109+
101110def test_emulation_initialized (driver ):
102111 assert driver .emulation is not None
103112 assert isinstance (driver .emulation , Emulation )
@@ -527,3 +536,41 @@ def test_set_screen_orientation_override_with_user_contexts(driver, pages, natur
527536 driver .browsing_context .close (context_id )
528537 finally :
529538 driver .browser .remove_user_context (user_context )
539+
540+
541+ def test_set_user_agent_override_with_contexts (driver , pages ):
542+ context_id = driver .current_window_handle
543+ url = pages .url ("formPage.html" )
544+ driver .browsing_context .navigate (context_id , url , wait = "complete" )
545+ initial_user_agent = get_browser_user_agent (driver )
546+
547+ custom_user_agent = "Mozilla/5.0 (Custom Test Agent)"
548+ driver .emulation .set_user_agent_override (user_agent = custom_user_agent , contexts = [context_id ])
549+
550+ assert get_browser_user_agent (driver ) == custom_user_agent
551+
552+ driver .emulation .set_user_agent_override (user_agent = None , contexts = [context_id ])
553+ assert get_browser_user_agent (driver ) == initial_user_agent
554+
555+
556+ def test_set_user_agent_override_with_user_contexts (driver , pages ):
557+ user_context = driver .browser .create_user_context ()
558+ try :
559+ context_id = driver .browsing_context .create (type = WindowTypes .TAB , user_context = user_context )
560+ try :
561+ driver .switch_to .window (context_id )
562+ url = pages .url ("formPage.html" )
563+ driver .browsing_context .navigate (context_id , url , wait = "complete" )
564+ initial_user_agent = get_browser_user_agent (driver )
565+
566+ custom_user_agent = "Mozilla/5.0 (Custom User Context Agent)"
567+ driver .emulation .set_user_agent_override (user_agent = custom_user_agent , user_contexts = [user_context ])
568+
569+ assert get_browser_user_agent (driver ) == custom_user_agent
570+
571+ driver .emulation .set_user_agent_override (user_agent = None , user_contexts = [user_context ])
572+ assert get_browser_user_agent (driver ) == initial_user_agent
573+ finally :
574+ driver .browsing_context .close (context_id )
575+ finally :
576+ driver .browser .remove_user_context (user_context )
0 commit comments