@@ -11,32 +11,46 @@ def test_call_function(driver):
1111 # Using public names for documentation purposes
1212 result = driver .script .call_function (
1313 "function(a, b) { return a + b; }" ,
14- arguments = [{"type" : "number" , "value" : 2 }, {"type" : "number" , "value" : 3 }]
14+ arguments = [{"type" : "number" , "value" : 2 }, {"type" : "number" , "value" : 3 }],
15+ await_promise = True ,
16+ target = {"context" : driver .current_window_handle }
1517 )
1618
17- assert result . result ['type' ] == "number"
18- assert result . result ['value' ] == 5
19+ assert result [ ' result' ] ['type' ] == "number"
20+ assert result [ ' result' ] ['value' ] == 5
1921
2022
2123@pytest .mark .driver_type ("bidi" )
2224def test_evaluate_script (driver ):
2325 driver .get ("https://www.selenium.dev/selenium/web/bidi/logEntryAdded.html" )
2426
25- result = driver .script .evaluate ("2 + 2" )
27+ result = driver .script .evaluate (
28+ "2 + 2" ,
29+ await_promise = True ,
30+ target = {"context" : driver .current_window_handle }
31+ )
2632
27- assert result . result ['type' ] == "number"
28- assert result . result ['value' ] == 4
33+ assert result [ ' result' ] ['type' ] == "number"
34+ assert result [ ' result' ] ['value' ] == 4
2935
3036
3137@pytest .mark .driver_type ("bidi" )
3238def test_disown_value (driver ):
3339 driver .get ("https://www.selenium.dev/selenium/web/bidi/logEntryAdded.html" )
3440
35- result = driver .script .evaluate ("({x: 1})" )
36- handle = result .result ['handle' ]
41+ result = driver .script .evaluate (
42+ "({x: 1})" ,
43+ await_promise = True ,
44+ target = {"context" : driver .current_window_handle },
45+ result_ownership = "root"
46+ )
47+ handle = result ['result' ]['handle' ]
3748
3849 # Disown the value
39- driver .script .disown (handles = [handle ])
50+ driver .script .disown (
51+ handles = [handle ],
52+ target = {"context" : driver .current_window_handle }
53+ )
4054 # If no exception is raised, disown was successful
4155
4256
@@ -48,27 +62,34 @@ def test_call_function_with_element_args(driver):
4862
4963 result = driver .script .call_function (
5064 "function(elem) { return elem.tagName; }" ,
51- arguments = [{"type" : "node" , "sharedId" : element .id }]
65+ arguments = [{"type" : "node" , "sharedId" : element .id }],
66+ await_promise = True ,
67+ target = {"context" : driver .current_window_handle }
5268 )
5369
54- assert result . result ['value' ] == "BUTTON"
70+ assert result [ ' result' ] ['value' ] == "BUTTON"
5571
5672
5773@pytest .mark .driver_type ("bidi" )
5874def test_evaluate_with_realm (driver ):
5975 driver .get ("https://www.selenium.dev/selenium/web/bidi/logEntryAdded.html" )
6076
6177 # Get realms
62- realms = driver .script .get_realms ()
78+ realms_result = driver .script .get_realms ()
79+ realms = realms_result ['realms' ]
6380
6481 assert len (realms ) > 0
65- realm_id = realms [0 ]. realm
82+ realm_id = realms [0 ][ ' realm' ]
6683
6784 # Evaluate in specific realm
68- result = driver .script .evaluate ("1 + 1" , realm = realm_id )
85+ result = driver .script .evaluate (
86+ "1 + 1" ,
87+ await_promise = True ,
88+ target = {"realm" : realm_id }
89+ )
6990
70- assert result . result ['type' ] == "number"
71- assert result . result ['value' ] == 2
91+ assert result [ ' result' ] ['type' ] == "number"
92+ assert result [ ' result' ] ['value' ] == 2
7293
7394
7495@pytest .mark .driver_type ("bidi" )
@@ -81,10 +102,9 @@ def on_mutation(event):
81102 driver .script .add_dom_mutation_handler (on_mutation )
82103 driver .get ("https://www.selenium.dev/selenium/web/bidi/logEntryAdded.html" )
83104
105+ # Mutate an attribute to trigger the handler
84106 script = """
85- const div = document.createElement('div');
86- div.textContent = 'Hello';
87- document.body.appendChild(div);
107+ document.getElementById('consoleLog').setAttribute('data-test', 'value');
88108 """
89109 driver .execute_script (script )
90110
0 commit comments