Skip to content

Commit df42d6b

Browse files
committed
Bump selenium selectors syntax
1 parent cace43d commit df42d6b

File tree

4 files changed

+175
-181
lines changed

4 files changed

+175
-181
lines changed

tests/__init__.py

+5-3
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55

66
from selenium import webdriver
77
from selenium.webdriver.chrome.options import Options
8+
from selenium.webdriver.common.by import By
9+
810
# from selenium.webdriver.common.keys import Keys
911

1012

@@ -35,15 +37,15 @@ def login(self, *args):
3537
if args:
3638
url += '?returnto=%2F' + '%2F'.join(args)
3739
self.driver.get(url)
38-
elem = self.driver.find_element_by_id('id-username')
40+
elem = self.driver.find_element(By.ID, 'id-username')
3941
elem.send_keys('loujin')
40-
elem = self.driver.find_element_by_id('id-password')
42+
elem = self.driver.find_element(By.ID, 'id-password')
4143
elem.send_keys('mb')
4244
elem.submit()
4345

4446
# def test_login(self):
4547
# self.login()
46-
# assert 'loujin' in self.driver.find_element_by_class_name('account').text
48+
# assert 'loujin' in self.driver.find_element(By.CLASS_NAME, 'account').text
4749
# assert self.driver.current_url == 'https://test.musicbrainz.org/user/loujin'
4850

4951
def load_userscript(self, filepath):

tests/test_display.py

+27-25
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55

66
from tests import UserscriptsTC
77

8+
from selenium.webdriver.common.by import By
9+
810
WORK_MBID = 'cc6eba78-85ef-3834-a400-a34e0d8856d9'
911
MAIN_WORK_MBID = 'db6400f0-6492-4c4a-9361-470be14d5bf2'
1012
MAIN_WORK_MBID2 = '8f32fb44-fde9-4e44-ad54-d7ac12703b4f'
@@ -17,63 +19,63 @@ class DisplayUserscriptsTC(UserscriptsTC):
1719
def test_script_sortable_columns(self):
1820
self.login('work', WORK_MBID)
1921
self.load_userscript('mb-display_sortable_table.user.js')
20-
assert self.driver.find_element_by_id('loujine-sidebar')
21-
btn = self.driver.find_element_by_id('makeSortable')
22+
assert self.driver.find_element(By.ID, 'loujine-sidebar')
23+
btn = self.driver.find_element(By.ID, 'makeSortable')
2224
btn.click()
23-
assert self.driver.find_element_by_css_selector('th.sortable').text == 'Date↕'
25+
assert self.driver.find_element(By.CSS_SELECTOR, 'th.sortable').text == 'Date↕'
2426

25-
assert int(self.driver.find_element_by_css_selector('table.tbl tr.odd td').text[:4]) < 1950
26-
self.driver.find_element_by_css_selector('th.sortable').click()
27-
assert int(self.driver.find_element_by_css_selector('table.tbl tr.odd td').text[:4]) > 2018
27+
assert int(self.driver.find_element(By.CSS_SELECTOR, 'table.tbl tr.odd td').text[:4]) < 1950
28+
self.driver.find_element(By.CSS_SELECTOR, 'th.sortable').click()
29+
assert int(self.driver.find_element(By.CSS_SELECTOR, 'table.tbl tr.odd td').text[:4]) > 2018
2830

2931
def test_script_count_alias(self):
3032
self.login('work', WORK_MBID)
3133
self.load_userscript('mb-display_count_alias.user.js')
32-
header = self.driver.find_element_by_css_selector("a[href$='/aliases']")
34+
header = self.driver.find_element(By.CSS_SELECTOR, "a[href$='/aliases']")
3335
time.sleep(5)
3436
assert 'background-color: rgb' in header.get_attribute('style')
3537

3638
def test_script_work_relations_for_artist_recordings(self):
3739
self.login('artist', CONDUCTOR_MBID + '/relationships')
3840
self.load_userscript('mb-display_work_relations_for_artist_recordings.user.js')
39-
btn = self.driver.find_element_by_id('showMissingWorks')
41+
btn = self.driver.find_element(By.ID, 'showMissingWorks')
4042
btn.click()
4143

4244
def test_script_split_recordings(self):
4345
self.login('work', MAIN_WORK_MBID)
4446
self.load_userscript('mb-display_split_recordings.user.js')
45-
btn = self.driver.find_element_by_id('displaySubworkRecordings')
47+
btn = self.driver.find_element(By.ID, 'displaySubworkRecordings')
4648
btn.click()
4749
time.sleep(20)
4850
assert '(33:04)' in self.driver.page_source
4951

5052
def test_script_split_recordings_no_rels(self):
5153
self.login('work', MAIN_WORK_MBID2)
5254
self.load_userscript('mb-display_split_recordings.user.js')
53-
btn = self.driver.find_element_by_id('displaySubworkRecordings')
55+
btn = self.driver.find_element(By.ID, 'displaySubworkRecordings')
5456
btn.click()
5557
time.sleep(35)
5658
assert '(23:34)' in self.driver.page_source
5759

5860
def test_script_lean_ui(self):
5961
self.login('release', RELEASE_MBID)
60-
assert self.driver.find_element_by_css_selector(f"li > a[href$='{RELEASE_MBID}/details']")
61-
assert self.driver.find_element_by_css_selector(f"li > a[href$='{RELEASE_MBID}/tags']")
62-
assert self.driver.find_element_by_css_selector('th.rating').text
63-
assert self.driver.find_element_by_css_selector('h2.rating').text
64-
assert self.driver.find_element_by_css_selector('h2.reviews').text
62+
assert self.driver.find_element(By.CSS_SELECTOR, f"li > a[href$='{RELEASE_MBID}/details']")
63+
assert self.driver.find_element(By.CSS_SELECTOR, f"li > a[href$='{RELEASE_MBID}/tags']")
64+
assert self.driver.find_element(By.CSS_SELECTOR, 'th.rating').text
65+
assert self.driver.find_element(By.CSS_SELECTOR, 'h2.rating').text
66+
assert self.driver.find_element(By.CSS_SELECTOR, 'h2.reviews').text
6567

6668
self.load_userscript('mb-display_lean_ui.user.js')
67-
assert not self.driver.find_elements_by_css_selector(f"li > a[href$='{RELEASE_MBID}/details']")
68-
assert not self.driver.find_elements_by_css_selector(f"li > a[href$='{RELEASE_MBID}/tags']")
69-
assert not self.driver.find_element_by_css_selector('th.rating').text
70-
assert not self.driver.find_element_by_css_selector('h2.rating').text
71-
assert not self.driver.find_element_by_css_selector('#toggle-release-information dl').is_displayed()
72-
assert not self.driver.find_element_by_css_selector('#toggle-additional-details dl').is_displayed()
73-
assert not self.driver.find_element_by_css_selector('#toggle-labels ul').is_displayed()
74-
assert not self.driver.find_element_by_css_selector('#toggle-release-events div').is_displayed()
75-
assert not self.driver.find_element_by_css_selector('#toggle-external-links ul').is_displayed()
76-
assert not self.driver.find_element_by_css_selector('h2.reviews').text
69+
assert not self.driver.find_elements(By.CSS_SELECTOR, f"li > a[href$='{RELEASE_MBID}/details']")
70+
assert not self.driver.find_elements(By.CSS_SELECTOR, f"li > a[href$='{RELEASE_MBID}/tags']")
71+
assert not self.driver.find_element(By.CSS_SELECTOR, 'th.rating').text
72+
assert not self.driver.find_element(By.CSS_SELECTOR, 'h2.rating').text
73+
assert not self.driver.find_element(By.CSS_SELECTOR, '#toggle-release-information dl').is_displayed()
74+
assert not self.driver.find_element(By.CSS_SELECTOR, '#toggle-additional-details dl').is_displayed()
75+
assert not self.driver.find_element(By.CSS_SELECTOR, '#toggle-labels ul').is_displayed()
76+
assert not self.driver.find_element(By.CSS_SELECTOR, '#toggle-release-events div').is_displayed()
77+
assert not self.driver.find_element(By.CSS_SELECTOR, '#toggle-external-links ul').is_displayed()
78+
assert not self.driver.find_element(By.CSS_SELECTOR, 'h2.reviews').text
7779

7880

7981
if __name__ == "__main__":

tests/test_edit.py

+22-24
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import time
44
import unittest
55

6-
import pytest
6+
from selenium.webdriver.common.by import By
77
from selenium.webdriver.support.ui import Select
88

99
from tests import UserscriptsTC
@@ -20,35 +20,34 @@ class EditUserscriptsTC(UserscriptsTC):
2020
def test_script_seed_event(self):
2121
self.login('recording', RECORDING_MBID)
2222
self.load_userscript('mb-edit-seed_event_from_recording.user.js')
23-
self.driver.find_element_by_id('createConcert').click()
23+
self.driver.find_element(By.ID, 'createConcert').click()
2424
time.sleep(8)
2525
self.driver.switch_to.window(self.driver.window_handles[-1])
2626
assert 'event/create' in self.driver.current_url
27-
assert self.driver.find_element_by_id('id-edit-event.setlist').text
27+
assert self.driver.find_element(By.ID, 'id-edit-event.setlist').text
2828
assert 'held at:' in self.driver.page_source
2929
assert 'main performers:' in self.driver.page_source
3030
assert 'recording location for:' in self.driver.page_source
3131

3232
def test_script_set_video(self):
3333
self.login('release', RELEASE_MBID)
3434
self.load_userscript('mb-edit-set_video_recordings.user.js')
35-
self.driver.find_element_by_id('video_script_toggle').click()
35+
self.driver.find_element(By.ID, 'video_script_toggle').click()
3636
time.sleep(2)
37-
assert len(self.driver.find_elements_by_class_name('replacevideo')) > 1
38-
self.driver.find_element_by_id('video-68eec263-13e4-4a5f-8042-23117714cdce').click()
37+
assert len(self.driver.find_elements(By.CLASS_NAME, 'replacevideo')) > 1
38+
self.driver.find_element(By.ID, 'video-68eec263-13e4-4a5f-8042-23117714cdce').click()
3939
# self.driver.set_network_conditions(offline=True, latency=1000, throughput=500 * 1024)
40-
# self.driver.find_element_by_id('batch_video').click()
40+
# self.driver.find_element(By.ID, 'batch_video').click()
4141
# time.sleep(1)
4242
# assert 'Fetching required data' in self.driver.page_source
4343

44-
@pytest.mark.skip(reason="external link already exists")
4544
def test_script_wikidata(self):
4645
self.login('artist', ARTIST_MBID + '/edit')
4746
self.load_userscript('mb-edit-create_from_wikidata.user.js')
4847
time.sleep(1)
4948
assert 'Add external link' in self.driver.page_source
50-
assert len(self.driver.find_elements_by_class_name('url')) > 18
51-
self.driver.find_element_by_id('linkParser').send_keys(WIKIDATA_LINK)
49+
assert len(self.driver.find_elements(By.CLASS_NAME, 'url')) > 18
50+
self.driver.find_element(By.ID, 'linkParser').send_keys(WIKIDATA_LINK)
5251
time.sleep(1)
5352
assert '<dt>Field "Name":</dt>' in self.driver.page_source
5453
assert '<dd>Kept "Víkingur Ólafsson"</dd>' in self.driver.page_source
@@ -59,40 +58,39 @@ def test_script_set_aliases(self):
5958
self.login('artist', ARTIST_MBID + '/aliases')
6059
self.load_userscript('mb-edit-add_aliases.user.js')
6160
assert 'Add a new row' in self.driver.page_source
62-
self.driver.find_element_by_id('addRow').click()
61+
self.driver.find_element(By.ID, 'addRow').click()
6362
time.sleep(1)
64-
lang = [o.text for o in self.driver.find_elements_by_class_name('language')]
63+
lang = [o.text for o in self.driver.find_elements(By.CLASS_NAME, 'language')]
6564
assert sorted(lang) == lang
66-
select = Select(self.driver.find_element_by_css_selector('tr.newAlias select'))
65+
select = Select(self.driver.find_element(By.CSS_SELECTOR, 'tr.newAlias select'))
6766
select.select_by_visible_text('Legal name')
68-
assert self.driver.find_element_by_css_selector(
69-
'tr.newAlias select').get_attribute('selectedIndex') == '2'
70-
self.driver.find_element_by_id('addRow').click()
67+
assert self.driver.find_element(
68+
By.CSS_SELECTOR, 'tr.newAlias select').get_attribute('selectedIndex') == '2'
69+
self.driver.find_element(By.ID, 'addRow').click()
7170
time.sleep(1)
72-
assert len(self.driver.find_elements_by_class_name('newAlias')) == 2
71+
assert len(self.driver.find_elements(By.CLASS_NAME, 'newAlias')) == 2
7372
# remove first (modified) row
74-
self.driver.find_element_by_class_name('deleteRow').click()
73+
self.driver.find_element(By.CLASS_NAME, 'deleteRow').click()
7574
time.sleep(1)
7675
# row 1 is now the former row 2 (i.e. empty)
77-
assert self.driver.find_element_by_css_selector(
78-
'tr.newAlias select').get_attribute('selectedIndex') == '0'
76+
assert self.driver.find_element(
77+
By.CSS_SELECTOR, 'tr.newAlias select').get_attribute('selectedIndex') == '0'
7978

80-
@pytest.mark.skip(reason="async releditor")
8179
def test_script_edit_subworks(self):
8280
self.login('work', WORK_WITH_SW_MBID + '/edit')
8381
self.load_userscript('mb-edit-edit_subworks.user.js')
8482
time.sleep(1)
8583
assert '(movement)' in self.driver.page_source
8684

87-
select = Select(self.driver.find_element_by_id('subwork_attribute'))
85+
select = Select(self.driver.find_element(By.ID, 'subwork_attribute'))
8886
select.select_by_visible_text('act')
89-
self.driver.find_element_by_id('setSubworksAttributes').click()
87+
self.driver.find_element(By.ID, 'setSubworksAttributes').click()
9088
time.sleep(1)
9189
assert '(movement)' not in self.driver.page_source
9290
assert '(act and movement)' in self.driver.page_source
9391

9492
select.select_by_visible_text('movement')
95-
self.driver.find_element_by_id('setSubworksAttributes').click()
93+
self.driver.find_element(By.ID, 'setSubworksAttributes').click()
9694
time.sleep(1)
9795
assert '(act and movement)' not in self.driver.page_source
9896
assert '(act)' in self.driver.page_source

0 commit comments

Comments
 (0)