Skip to content

Commit b05c875

Browse files
authored
[deps] Upgraded selenium dependency
1 parent a35a068 commit b05c875

File tree

4 files changed

+50
-35
lines changed

4 files changed

+50
-35
lines changed

openwisp_controller/config/tests/test_selenium.py

Lines changed: 36 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
TimeoutException,
88
UnexpectedAlertPresentException,
99
)
10+
from selenium.webdriver.common.alert import Alert
1011
from selenium.webdriver.common.by import By
1112
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
1213
from selenium.webdriver.support import expected_conditions as EC
@@ -57,14 +58,16 @@ def tearDown(self):
5758
try:
5859
self.web_driver.refresh()
5960
except UnexpectedAlertPresentException:
60-
self.web_driver.switch_to_alert().accept()
61+
alert = Alert(self.web_driver)
62+
alert.accept()
6163
else:
6264
try:
6365
WebDriverWait(self.web_driver, 1).until(EC.alert_is_present())
6466
except TimeoutException:
6567
pass
6668
else:
67-
self.web_driver.switch_to_alert().accept()
69+
alert = Alert(self.web_driver)
70+
alert.accept()
6871
self.web_driver.refresh()
6972
WebDriverWait(self.web_driver, 2).until(
7073
EC.visibility_of_element_located((By.XPATH, '//*[@id="site-name"]'))
@@ -76,29 +79,33 @@ def test_create_new_device(self):
7679
org = self._get_org()
7780
self.login()
7881
self.open(reverse('admin:config_device_add'))
79-
self.web_driver.find_element_by_name('name').send_keys('11:22:33:44:55:66')
80-
self.web_driver.find_element_by_css_selector(
81-
'#select2-id_organization-container'
82+
self.web_driver.find_element(by=By.NAME, value='name').send_keys(
83+
'11:22:33:44:55:66'
84+
)
85+
self.web_driver.find_element(
86+
by=By.CSS_SELECTOR, value='#select2-id_organization-container'
8287
).click()
8388
WebDriverWait(self.web_driver, 2).until(
8489
EC.invisibility_of_element_located(
8590
(By.CSS_SELECTOR, '.select2-results__option.loading-results')
8691
)
8792
)
88-
self.web_driver.find_element_by_class_name('select2-search__field').send_keys(
89-
org.name
90-
)
93+
self.web_driver.find_element(
94+
by=By.CLASS_NAME, value='select2-search__field'
95+
).send_keys(org.name)
9196
WebDriverWait(self.web_driver, 2).until(
9297
EC.invisibility_of_element_located(
9398
(By.CSS_SELECTOR, '.select2-results__option.loading-results')
9499
)
95100
)
96-
self.web_driver.find_element_by_class_name('select2-results__option').click()
97-
self.web_driver.find_element_by_name('mac_address').send_keys(
101+
self.web_driver.find_element(
102+
by=By.CLASS_NAME, value='select2-results__option'
103+
).click()
104+
self.web_driver.find_element(by=By.NAME, value='mac_address').send_keys(
98105
'11:22:33:44:55:66'
99106
)
100-
self.web_driver.find_element_by_xpath(
101-
'//*[@id="config-group"]/fieldset/div[2]/a'
107+
self.web_driver.find_element(
108+
by=By.XPATH, value='//*[@id="config-group"]/fieldset/div[2]/a'
102109
).click()
103110

104111
try:
@@ -110,11 +117,11 @@ def test_create_new_device(self):
110117
except TimeoutException:
111118
self.fail('Default template clickable timed out')
112119

113-
required_template_element = self.web_driver.find_element_by_xpath(
114-
f'//*[@value="{required_template.id}"]'
120+
required_template_element = self.web_driver.find_element(
121+
by=By.XPATH, value=f'//*[@value="{required_template.id}"]'
115122
)
116-
default_template_element = self.web_driver.find_element_by_xpath(
117-
f'//*[@value="{default_template.id}"]'
123+
default_template_element = self.web_driver.find_element(
124+
by=By.XPATH, value=f'//*[@value="{default_template.id}"]'
118125
)
119126
self.assertEqual(required_template_element.is_enabled(), False)
120127
self.assertEqual(required_template_element.is_selected(), True)
@@ -124,9 +131,9 @@ def test_create_new_device(self):
124131
self.web_driver.execute_script(
125132
'document.querySelector("#ow-user-tools").style.display="none"'
126133
)
127-
self.web_driver.find_element_by_name('_save').click()
134+
self.web_driver.find_element(by=By.NAME, value='_save').click()
128135
self.assertEqual(
129-
self.web_driver.find_elements_by_class_name('success')[0].text,
136+
self.web_driver.find_elements(by=By.CLASS_NAME, value='success')[0].text,
130137
'The Device “11:22:33:44:55:66” was added successfully.',
131138
)
132139

@@ -144,14 +151,17 @@ def test_unsaved_changes(self):
144151
self.fail('Unsaved changes alert displayed without any change')
145152

146153
with self.subTest('Alert should be displayed after making changes'):
147-
self.web_driver.find_element_by_name('name').send_keys('new.device.name')
154+
self.web_driver.find_element(by=By.NAME, value='name').send_keys(
155+
'new.device.name'
156+
)
148157
self.web_driver.refresh()
149158
try:
150159
WebDriverWait(self.web_driver, 1).until(EC.alert_is_present())
151160
except TimeoutException:
152161
self.fail('Timed out wating for unsaved changes alert')
153162
else:
154-
self.web_driver.switch_to_alert().accept()
163+
alert = Alert(self.web_driver)
164+
alert.accept()
155165

156166
def test_multiple_organization_templates(self):
157167
shared_required_template = self._create_template(
@@ -224,10 +234,10 @@ def test_change_config_backend(self):
224234
self.open(
225235
reverse('admin:config_device_change', args=[device.id]) + '#config-group'
226236
)
227-
self.web_driver.find_element_by_xpath(f'//*[@value="{template.id}"]')
237+
self.web_driver.find_element(by=By.XPATH, value=f'//*[@value="{template.id}"]')
228238
# Change config backed to
229239
config_backend_select = Select(
230-
self.web_driver.find_element_by_name('config-0-backend')
240+
self.web_driver.find_element(by=By.NAME, value='config-0-backend')
231241
)
232242
config_backend_select.select_by_visible_text('OpenWISP Firmware 1.x')
233243
try:
@@ -263,13 +273,14 @@ def test_template_context_variables(self):
263273
)
264274
except TimeoutException:
265275
self.fail('Timed out wating for configuration variabled to get loaded')
266-
self.web_driver.find_element_by_xpath(
267-
'//*[@id="main-content"]/div[2]/a[3]'
276+
self.web_driver.find_element(
277+
by=By.XPATH, value='//*[@id="main-content"]/div[2]/a[3]'
268278
).click()
269279
try:
270280
WebDriverWait(self.web_driver, 2).until(EC.alert_is_present())
271281
except TimeoutException:
272282
pass
273283
else:
274-
self.web_driver.switch_to_alert().accept()
284+
alert = Alert(self.web_driver)
285+
alert.accept()
275286
self.fail('Unsaved changes alert displayed without any change')

openwisp_controller/tests/test_selenium.py

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
from reversion.models import Version
66
from selenium import webdriver
77
from selenium.common.exceptions import TimeoutException, UnexpectedAlertPresentException
8+
from selenium.webdriver.common.alert import Alert
89
from selenium.webdriver.common.by import By
910
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
1011
from selenium.webdriver.support import expected_conditions as EC
@@ -61,14 +62,16 @@ def tearDown(self):
6162
try:
6263
self.web_driver.refresh()
6364
except UnexpectedAlertPresentException:
64-
self.web_driver.switch_to_alert().accept()
65+
alert = Alert(self.web_driver)
66+
alert.accept()
6567
else:
6668
try:
6769
WebDriverWait(self.web_driver, 1).until(EC.alert_is_present())
6870
except TimeoutException:
6971
pass
7072
else:
71-
self.web_driver.switch_to_alert().accept()
73+
alert = Alert(self.web_driver)
74+
alert.accept()
7275
self.web_driver.refresh()
7376
WebDriverWait(self.web_driver, 2).until(
7477
EC.visibility_of_element_located((By.XPATH, '//*[@id="site-name"]'))
@@ -92,8 +95,8 @@ def test_restoring_deleted_device(self):
9295
self.open(
9396
reverse(f'admin:{self.config_app_label}_device_delete', args=[device.id])
9497
)
95-
self.web_driver.find_element_by_xpath(
96-
'//*[@id="content"]/form/div/input[2]'
98+
self.web_driver.find_element(
99+
by=By.XPATH, value='//*[@id="content"]/form/div/input[2]'
97100
).click()
98101
self.assertEqual(Device.objects.count(), 0)
99102
self.assertEqual(DeviceConnection.objects.count(), 0)
@@ -107,8 +110,8 @@ def test_restoring_deleted_device(self):
107110
f'admin:{self.config_app_label}_device_recover', args=[version_obj.id]
108111
)
109112
)
110-
self.web_driver.find_element_by_xpath(
111-
'//*[@id="device_form"]/div/div[1]/input[1]'
113+
self.web_driver.find_element(
114+
by=By.XPATH, value='//*[@id="device_form"]/div/div[1]/input[1]'
112115
).click()
113116
try:
114117
WebDriverWait(self.web_driver, 5).until(

openwisp_controller/tests/utils.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
from django.contrib.auth import get_user_model
22
from django.urls import reverse
3+
from selenium.webdriver.common.by import By
34

45
from openwisp_users.tests.utils import TestMultitenantAdminMixin
56

@@ -51,6 +52,6 @@ def login(self, username=None, password=None, driver=None):
5152
password = self.admin_password
5253
driver.get(f'{self.live_server_url}/admin/login/')
5354
if 'admin/login' in driver.current_url:
54-
driver.find_element_by_name('username').send_keys(username)
55-
driver.find_element_by_name('password').send_keys(password)
56-
driver.find_element_by_xpath('//input[@type="submit"]').click()
55+
driver.find_element(by=By.NAME, value='username').send_keys(username)
56+
driver.find_element(by=By.NAME, value='password').send_keys(password)
57+
driver.find_element(by=By.XPATH, value='//input[@type="submit"]').click()

requirements-test.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,5 @@ channels_redis~=4.1.0
88
django_redis~=5.2.0
99
mock-ssh-server~=0.9.1
1010
responses~=0.12.1
11-
selenium~=3.141.0
11+
selenium~=4.9.0
1212
psycopg2-binary~=2.8.0

0 commit comments

Comments
 (0)