1
+ import logging
1
2
from typing import List
2
3
4
+ from selenium .common .exceptions import TimeoutException
3
5
from selenium .webdriver .remote .webelement import WebElement
4
6
5
7
from modules .browser_object_navigation import Navigation
@@ -25,38 +27,46 @@ def wait_for_blocked_tracking_icon(
25
27
first_tracker_website.open()
26
28
tracker_panel.wait_for_blocked_tracking_icon(nav, first_tracker_website)
27
29
"""
28
- self .driver .set_context (self .driver .CONTEXT_CHROME )
29
- try :
30
- while 1 :
31
- nav .get_element ("refresh-button" ).click ()
32
30
33
- self .driver .set_context (self .driver .CONTEXT_CONTENT )
31
+ def shield_active () -> bool :
32
+ nav .get_element ("refresh-button" ).click ()
33
+ with self .driver .context (self .driver .CONTEXT_CONTENT ):
34
34
page .wait_for_page_to_load ()
35
+ shield_icon = nav .get_element ("shield-icon" )
36
+ if (
37
+ shield_icon .get_attribute ("data-l10n-id" )
38
+ == "tracking-protection-icon-active-container"
39
+ ):
40
+ return True
41
+ return False
35
42
36
- self .driver .set_context (self .driver .CONTEXT_CHROME )
37
- shield_icon = nav .get_element ("shield-icon" )
38
-
39
- if (
40
- shield_icon .get_attribute ("data-l10n-id" )
41
- == "tracking-protection-icon-active-container"
42
- ):
43
- return
44
- finally :
45
- self .driver .set_context (self .driver .CONTEXT_CONTENT )
43
+ try :
44
+ with self .driver .context (self .context_id ):
45
+ self .wait .until (lambda _ : shield_active ())
46
+ except TimeoutException :
47
+ logging .warning (
48
+ "The shield icon was not active after refreshing mulitple times, the test has timed out."
49
+ )
46
50
return self
47
51
48
52
def verify_tracker_shield_indicator (self , nav : Navigation ) -> BasePage :
49
- with self .driver .context (self .driver .CONTEXT_CHROME ):
53
+ """
54
+ Verifies that the shield icon is
55
+ """
56
+ with self .driver .context (self .context_id ):
50
57
shield_icon = nav .get_element ("shield-icon" )
51
58
assert (
52
59
shield_icon .get_attribute ("data-l10n-id" )
53
60
== "tracking-protection-icon-active-container"
54
- ), "The label detected did not correspond to the expected one: tracking-protection-icon-no-trackers-detected-container"
61
+ ), "The label detected did not correspond to the expected one: tracking-protection-icon-active-container"
62
+ return self
55
63
56
64
def open_and_return_cross_site_trackers (self ) -> List [WebElement ]:
57
- self .get_element ("tracker-cross-site-tracking" ).click ()
58
- return self .get_elements ("tracking-cross-site-tracking-item" )
65
+ with self .driver .context (self .context_id ):
66
+ self .get_element ("tracker-cross-site-tracking" ).click ()
67
+ return self .get_elements ("tracking-cross-site-tracking-item" )
59
68
60
69
def open_and_return_allowed_trackers (self ) -> List [WebElement ]:
61
- self .get_element ("tracker-tracking-content" ).click ()
62
- return self .get_elements ("tracking-allowed-content-item" )
70
+ with self .driver .context (self .context_id ):
71
+ self .get_element ("tracker-tracking-content" ).click ()
72
+ return self .get_elements ("tracking-allowed-content-item" )
0 commit comments