Skip to content

Commit 95704bd

Browse files
authored
repair issues with save dialogs (#555)
* repair issues with save dialogs * remove debug * lint
1 parent edaa893 commit 95704bd

10 files changed

+36
-27
lines changed

l10n_CM/Unified/test_demo_cc_2_preview.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
from modules.browser_object_autofill_popup import AutofillPopup
55
from modules.page_object import AboutPrefs, CreditCardFill
6-
from modules.util import BrowserActions, Utilities
6+
from modules.util import Utilities
77

88

99
@pytest.fixture()

l10n_CM/Unified/test_demo_cc_3_autofill.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
from selenium.webdriver import Firefox
33

44
from modules.browser_object_autofill_popup import AutofillPopup
5-
from modules.page_object import AboutPrefs, CreditCardFill
5+
from modules.page_object import CreditCardFill
66
from modules.util import Utilities
77

88

modules/data/generic_pdf.components.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@
152152
},
153153

154154
"added-goomy-image": {
155-
"selectorData": "canvas[aria-label='goomy.png']",
155+
"selectorData": "[data-l10n-id='pdfjs-editor-stamp-editor'][aria-description='goomy.png']",
156156
"strategy": "css",
157157
"groups": []
158158
}

modules/page_object_about_pages.py

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import logging
22
import os
33
import re
4-
import sys
54

65
from pypom import Page
76
from selenium.common.exceptions import (
@@ -179,15 +178,8 @@ def check_logins_present(
179178
else:
180179
assert expected_logins == actual_logins
181180

182-
def get_downloads_dir(self) -> str:
183-
# Return full path to Documents directory
184-
home = os.path.expanduser("~")
185-
export_dir = os.path.join(home, "Downloads")
186-
return export_dir
187-
188-
def remove_password_csv(self):
181+
def remove_password_csv(self, downloads_dir):
189182
# Delete password.csv, if there is one in the export location
190-
downloads_dir = self.get_downloads_dir()
191183
passwords_csv = os.path.join(downloads_dir, "passwords.csv")
192184
for file in os.listdir(downloads_dir):
193185
delete_files_regex = re.compile(r"\bpasswords.csv\b")

modules/page_object_generics.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,23 @@ class GenericPage(BasePage):
1515

1616
URL_TEMPLATE = "{url}"
1717

18+
def navigate_dialog_to_location(self, location: str) -> BasePage:
19+
sleep(1.5)
20+
from pynput.keyboard import Controller, Key
21+
22+
keyboard = Controller()
23+
if self.sys_platform() == "Darwin" or self.sys_platform() == "Linux":
24+
keyboard.type("/")
25+
sleep(1.5)
26+
keyboard.type(location.lstrip("/"))
27+
else:
28+
sleep(1.5)
29+
keyboard.type(location)
30+
sleep(1)
31+
keyboard.press(Key.enter)
32+
sleep(1)
33+
keyboard.press(Key.enter)
34+
1835

1936
class GenericPdf(BasePage):
2037
"""

modules/util.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
from selenium.webdriver.common.keys import Keys
2525
from selenium.webdriver.remote.shadowroot import ShadowRoot
2626
from selenium.webdriver.remote.webelement import WebElement
27-
from selenium.webdriver.support import expected_conditions as EC
2827
from selenium.webdriver.support.wait import WebDriverWait
2928

3029
from modules.classes.autofill_base import AutofillAddressBase
@@ -225,7 +224,7 @@ def create_localized_faker(self, country_code: str):
225224
faker.add_provider(internet)
226225
faker.add_provider(misc)
227226
return faker, True
228-
except AttributeError as e:
227+
except AttributeError:
229228
logging.error(
230229
f"Invalid locale `{locale}`. Faker instance could not be created."
231230
)

tests/form_autofill/test_enable_disable_autofill.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import pytest
22
from selenium.webdriver import Firefox
33

4-
from modules.browser_object import Navigation
54
from modules.browser_object_autofill_popup import AutofillPopup
65
from modules.page_object import AboutPrefs
76
from modules.page_object_autofill import AddressFill

tests/password_manager/test_password_csv_correctness.py

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,8 @@
44
import time
55

66
import pytest
7-
from pynput.keyboard import Controller, Key
87

9-
from modules.page_object import AboutLogins
8+
from modules.page_object import AboutLogins, GenericPage
109

1110

1211
@pytest.fixture()
@@ -24,10 +23,10 @@ def test_password_csv_correctness(
2423
# Initializing objects
2524
(driver, usernames, logins) = driver_and_saved_logins
2625
about_logins = AboutLogins(driver)
27-
keyboard = Controller()
26+
page = GenericPage(driver)
2827

2928
# Ensure the export target folder doesn't contain a passwords.csv file
30-
about_logins.remove_password_csv()
29+
about_logins.remove_password_csv(downloads_folder)
3130

3231
# Click on buttons to export passwords
3332
about_logins.open()
@@ -36,8 +35,8 @@ def test_password_csv_correctness(
3635
about_logins.click_on("continue-export-button")
3736

3837
# Export the password file
39-
time.sleep(5)
40-
keyboard.tap(Key.enter)
38+
time.sleep(3)
39+
page.navigate_dialog_to_location(downloads_folder)
4140

4241
# Verify the exported csv file is present in the target folder
4342
csv_file = os.path.join(downloads_folder, "passwords.csv")
@@ -62,4 +61,4 @@ def test_password_csv_correctness(
6261
about_logins.check_logins_present(actual_logins, logins)
6362

6463
# Delete the password.csv created
65-
about_logins.remove_password_csv()
64+
about_logins.remove_password_csv(downloads_folder)

tests/password_manager/test_password_csv_export.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import pytest
55
from pynput.keyboard import Controller, Key
66

7-
from modules.page_object import AboutLogins
7+
from modules.page_object import AboutLogins, GenericPage
88

99

1010
@pytest.fixture()
@@ -22,10 +22,11 @@ def test_password_csv_export(
2222
# Initializing objects
2323
(driver, usernames, logins) = driver_and_saved_logins
2424
about_logins = AboutLogins(driver)
25+
page = GenericPage(driver)
2526
keyboard = Controller()
2627

2728
# Ensure the export target folder doesn't contain a passwords.csv file
28-
about_logins.remove_password_csv()
29+
about_logins.remove_password_csv(downloads_folder)
2930

3031
# Click on buttons to export passwords
3132
about_logins.open()
@@ -34,12 +35,14 @@ def test_password_csv_export(
3435
about_logins.click_on("continue-export-button")
3536

3637
# Export the password file
37-
time.sleep(5)
38+
time.sleep(3)
39+
page.navigate_dialog_to_location(downloads_folder)
40+
3841
keyboard.tap(Key.enter)
3942

4043
# Verify the exported csv file is present in the target folder
4144
csv_file = os.path.join(downloads_folder, "passwords.csv")
4245
about_logins.wait.until(lambda _: os.path.exists(csv_file))
4346

4447
# Delete the password.csv created
45-
about_logins.remove_password_csv()
48+
about_logins.remove_password_csv(downloads_folder)

tests/pdf_viewer/test_download_triggered_on_content_disposition_attachment.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
from selenium.webdriver import Firefox
55

66
from modules.browser_object import Navigation, TabBar
7-
from modules.page_object import AboutPrefs, GenericPdf
7+
from modules.page_object import AboutPrefs
88
from modules.util import BrowserActions
99

1010

0 commit comments

Comments
 (0)