Skip to content

Commit 0ed6b09

Browse files
Merge branch 'main' into philimon/rework_ensure_visible
2 parents 83fe038 + 923a011 commit 0ed6b09

File tree

5 files changed

+81
-9
lines changed

5 files changed

+81
-9
lines changed

choose_l10n_ci_set.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -86,13 +86,13 @@ def select_l10n_mappings(beta_version):
8686
Args:
8787
beta_version: the current beta version.
8888
"""
89-
# beta_split = (beta_version % 3) + 1
90-
# if os.path.exists(f"l10n_CM/beta_run_splits/l10n_split_{beta_split}.json"):
91-
# logging.warning(f"Running Split: {beta_split}.")
92-
# with open(f"l10n_CM/beta_run_splits/l10n_split_{beta_split}.json", "r") as f:
93-
# return json.load(f)
94-
# else:
95-
# return valid_l10n_mappings()
89+
# beta_split = (beta_version % 3) + 1
90+
# if os.path.exists(f"l10n_CM/beta_run_splits/l10n_split_{beta_split}.json"):
91+
# with open(f"l10n_CM/beta_run_splits/l10n_split_{beta_split}.json", "r") as f:
92+
# current_split_mappings = {k: set(v) for k, v in json.load(f).items()}
93+
# return current_split_mappings
94+
# else:
95+
# return valid_l10n_mappings()
9696
return valid_l10n_mappings()
9797

9898

l10n_CM/README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ The harness relies on several configuration files:
3131
]
3232
}
3333
```
34+
**NOTE**: If both the address and credit card tests are skipped for the site, do not add it to the region files.
35+
3436
- **Site Test Configuration**: Located in `constants/{site_name}.json` or `constants/{site_name}/{region}.json`, defining site-specific test configurations and skipped tests. Here we map the attributes for either `AutofillAddressBase` or `CreditCardBase` to the corresponding selectors.
3537

3638
```aiignore

l10n_CM/constants/calvinklein/US/calvinklein_ad.json

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,7 @@
1010
"email": "0c994dc2-4e0b-4734-8582-74ce9a1bff55",
1111
"telephone": "e1f86567-396f-473c-8666-47447f52d722"
1212
},
13-
1413
"form_field": "*[data-moz-autofill-inspect-id='{given_name}']",
15-
"skip": "True",
1614
"fields": [
1715
"5d2af5cb-8f6d-4fdc-8ae5-21c7e5e97a43",
1816
"82900c67-963c-40f8-b0ef-c986a2accc43",

modules/page_base.py

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
from typing import List, Union
1212

1313
from pynput.keyboard import Controller, Key
14+
from pynput.mouse import Button, Controller as MouseController
1415
from pypom import Page
1516
from selenium.common import NoAlertPresentException
1617
from selenium.common.exceptions import (
@@ -558,6 +559,39 @@ def triple_click(self, reference: Union[str, tuple, WebElement], labels=[]) -> P
558559
"""Actions helper: perform triple-click on a given element"""
559560
return self.multi_click(3, reference, labels)
560561

562+
def control_click(self, reference: Union[str, tuple, WebElement], labels=[]) -> Page:
563+
"""Actions helper: perform control-click on given element"""
564+
element = self.fetch(reference, labels)
565+
if self.sys_platform() == "Darwin":
566+
mod_key = Keys.COMMAND
567+
else:
568+
mod_key = Keys.CONTROL
569+
self.actions.key_down(mod_key).click(element).key_up(mod_key).perform()
570+
return self
571+
572+
def middle_click(self, reference: Union[str, tuple, WebElement], labels =[]):
573+
"""Perform a middle mouse click on desired element"""
574+
with self.driver.context(self.driver.CONTEXT_CONTENT):
575+
self.driver.maximize_window()
576+
mouse = MouseController()
577+
element = self.fetch(reference, labels)
578+
579+
element_location = element.location
580+
element_size = element.size
581+
window_position = self.driver.get_window_position()
582+
583+
inner_height = self.driver.execute_script("return window.innerHeight;")
584+
outer_height = self.driver.execute_script("return window.outerHeight;")
585+
chrome_height = outer_height - inner_height
586+
587+
element_x = window_position['x'] + element_location['x'] + (element_size['width'] / 2)
588+
element_y = window_position['y'] + element_location['y'] + (element_size['height'] / 2) + chrome_height
589+
mouse.position = (element_x, element_y)
590+
591+
time.sleep(1)
592+
mouse.click(Button.middle, 1)
593+
return self
594+
561595
def context_click(
562596
self, reference: Union[str, tuple, WebElement], labels=[]
563597
) -> Page:
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
import pytest
2+
from selenium.webdriver import Firefox
3+
4+
from modules.page_object import ExamplePage
5+
6+
7+
@pytest.fixture()
8+
def test_case():
9+
return "134455"
10+
11+
12+
@pytest.mark.headed
13+
def test_open_new_bg_tab_via_mouse_and_keyboard(driver: Firefox):
14+
"""
15+
C134455 - Verify that opening hyperlink with mouse or keyboard
16+
shortcuts creates new background tabs
17+
"""
18+
19+
test_url = "https://www.iana.org/help/example-domains"
20+
example = ExamplePage(driver).open()
21+
22+
# Middle click link, verify new background tab opens with correct URL
23+
example.middle_click("more-information")
24+
example.wait_for_num_tabs(2)
25+
example.switch_to_new_tab()
26+
27+
assert driver.current_url == test_url
28+
29+
# Close new tab, switch back to original example page
30+
driver.close()
31+
example.switch_to_new_tab()
32+
33+
# Control click link, verify new background tab opens with correct URL
34+
example.control_click("more-information")
35+
example.wait_for_num_tabs(2)
36+
example.switch_to_new_tab()
37+
38+
assert driver.current_url == test_url

0 commit comments

Comments
 (0)