Skip to content

Commit 5dfa6b0

Browse files
committed
🔪 deprecated find_element(s)_by_css_selector
1 parent 8ec0e2e commit 5dfa6b0

File tree

13 files changed

+122
-137
lines changed

13 files changed

+122
-137
lines changed

components/dash-core-components/tests/integration/dropdown/test_dynamic_options.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,7 @@ def update_options(search_value):
2424
dash_dcc.start_server(app)
2525

2626
# Get the inner input used for search value.
27-
dropdown = dash_dcc.find_element("#my-dynamic-dropdown")
28-
input_ = dropdown.find_element_by_css_selector("input")
27+
input_ = dash_dcc.find_element("#my-dynamic-dropdown input")
2928

3029
# Focus on the input to open the options menu
3130
input_.send_keys("x")
@@ -36,15 +35,15 @@ def update_options(search_value):
3635
input_.clear()
3736
input_.send_keys("o")
3837

39-
options = dropdown.find_elements_by_css_selector(".VirtualizedSelectOption")
38+
options = dash_dcc.find_elements("#my-dynamic-dropdown .VirtualizedSelectOption")
4039

4140
# Should show all options.
4241
assert len(options) == 3
4342

4443
# Searching for `on`
4544
input_.send_keys("n")
4645

47-
options = dropdown.find_elements_by_css_selector(".VirtualizedSelectOption")
46+
options = dash_dcc.find_elements("#my-dynamic-dropdown .VirtualizedSelectOption")
4847

4948
assert len(options) == 1
5049
print(options)

components/dash-core-components/tests/integration/graph/test_graph_varia.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ def show_relayout_data(data):
131131

132132
# use this opportunity to test restyleData, since there are multiple
133133
# traces on this graph
134-
legendToggle = dash_dcc.driver.find_element_by_css_selector(
134+
legendToggle = dash_dcc.find_element(
135135
"#example-graph .traces:first-child .legendtoggle"
136136
)
137137
legendToggle.click()
@@ -145,7 +145,7 @@ def show_relayout_data(data):
145145
)
146146

147147
# and test relayoutData while we're at it
148-
autoscale = dash_dcc.driver.find_element_by_css_selector("#example-graph .ewdrag")
148+
autoscale = dash_dcc.find_element("#example-graph .ewdrag")
149149
autoscale.click()
150150
autoscale.click()
151151
dash_dcc.wait_for_text_to_equal("#relayout-data", '{"xaxis.autorange": true}')

components/dash-table/tests/selenium/conftest.py

Lines changed: 35 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ def __init__(self, id, mixin, row, col, state=_ANY):
5252
self.state = state
5353

5454
def _get_cell_value(self):
55-
return self.get().find_element_by_css_selector(".dash-cell-value")
55+
return self.get().find_element(By.CSS_SELECTOR, ".dash-cell-value")
5656

5757
def click(self):
5858
return self.get().click()
@@ -104,13 +104,19 @@ def get(self):
104104
)
105105
)
106106

107+
def find_inside(self, selector):
108+
return self.get().find_element(By.CSS_SELECTOR, selector)
109+
110+
def find_all_inside(self, selector):
111+
return self.get().find_elements(By.CSS_SELECTOR, selector)
112+
107113
def is_dropdown(self):
108-
el = self.get().find_elements_by_css_selector(".Select-arrow")
114+
el = self.get().find_elements(By.CSS_SELECTOR, ".Select-arrow")
109115

110116
return len(el) == 1
111117

112118
def is_input(self):
113-
el = self.get().find_elements_by_css_selector(".dash-cell-value")
119+
el = self.get().find_elements(By.CSS_SELECTOR, ".dash-cell-value")
114120

115121
return len(el) == 1 and el[0].get_attribute("type") is not None
116122

@@ -130,7 +136,7 @@ def move_to(self):
130136
return ac.perform()
131137

132138
def is_active(self):
133-
input = self.get().find_element_by_css_selector("input")
139+
input = self.get().find_element(By.CSS_SELECTOR, "input")
134140

135141
return "focused" in input.get_attribute("class").split(" ")
136142

@@ -152,7 +158,7 @@ def is_value_focused(self):
152158
def open_dropdown(self):
153159
cell = self.get()
154160

155-
cell.find_element_by_css_selector(".Select-arrow").click()
161+
cell.find_element(By.CSS_SELECTOR, ".Select-arrow").click()
156162

157163

158164
class DataTableColumnFacade(object):
@@ -181,6 +187,12 @@ def get(self, row=0):
181187
)
182188
)
183189

190+
def find_inside(self, row, selector):
191+
return self.get(row).find_element(By.CSS_SELECTOR, selector)
192+
193+
def find_all_inside(self, row, selector):
194+
return self.get(row).find_elements(By.CSS_SELECTOR, selector)
195+
184196
def exists(self, row=0):
185197
self.mixin._wait_for_table(self.id, self.state)
186198

@@ -202,33 +214,29 @@ def exists(self, row=0):
202214

203215
@preconditions(_validate_row)
204216
def clear(self, row=0):
205-
self.get(row).find_element_by_css_selector(".column-header--clear").click()
217+
self.find_inside(row, ".column-header--clear").click()
206218

207219
@preconditions(_validate_row)
208220
def delete(self, row=0):
209-
self.get(row).find_element_by_css_selector(".column-header--delete").click()
221+
self.find_inside(row, ".column-header--delete").click()
210222

211223
@preconditions(_validate_row)
212224
def edit(self, row=0):
213-
self.get(row).find_element_by_css_selector(".column-header--edit").click()
225+
self.find_inside(row, ".column-header--edit").click()
214226

215227
@preconditions(_validate_row)
216228
def get_text(self, row=0):
217-
el = self.get(row).find_element_by_css_selector("span.column-header-name")
229+
el = self.find_inside(row, "span.column-header-name")
218230

219231
return el.get_attribute("innerHTML") if el is not None else None
220232

221233
@preconditions(_validate_row)
222234
def hide(self, row=0):
223-
self.get(row).find_element_by_css_selector(".column-header--hide").click()
235+
self.find_inside(row, ".column-header--hide").click()
224236

225237
@preconditions(_validate_row)
226238
def is_selected(self, row=0):
227-
return (
228-
self.get(row)
229-
.find_element_by_css_selector(".column-header--select input")
230-
.is_selected()
231-
)
239+
return self.find_inside(row, ".column-header--select input").is_selected()
232240

233241
@preconditions(_validate_row)
234242
def move_to(self, row=0):
@@ -238,13 +246,11 @@ def move_to(self, row=0):
238246

239247
@preconditions(_validate_row)
240248
def select(self, row=0):
241-
self.get(row).find_element_by_css_selector(
242-
".column-header--select input"
243-
).click()
249+
self.find_inside(row, ".column-header--select input").click()
244250

245251
@preconditions(_validate_row)
246252
def sort(self, row=0):
247-
self.get(row).find_element_by_css_selector(".column-header--sort").click()
253+
self.find_inside(row, ".column-header--sort").click()
248254

249255
def filter(self):
250256
return (
@@ -264,7 +270,7 @@ def filter(self):
264270
def filter_clear(self):
265271
CMD = Keys.COMMAND if platform.system() == "Darwin" else Keys.CONTROL
266272

267-
self.filter().find_element_by_css_selector("input").click()
273+
self.filter().find_element(By.CSS_SELECTOR, "input").click()
268274
ac = ActionChains(self.mixin.driver)
269275
ac.key_down(CMD)
270276
ac.send_keys("a")
@@ -282,7 +288,7 @@ def filter_value(self, value=None):
282288
if value is None:
283289
return (
284290
self.filter()
285-
.find_element_by_css_selector("input")
291+
.find_element(By.CSS_SELECTOR, "input")
286292
.get_attribute("value")
287293
)
288294
elif value == "":
@@ -321,7 +327,7 @@ def is_selected(self):
321327
self.id, self.state
322328
)
323329
)[self.row]
324-
.find_element_by_css_selector("input")
330+
.find_element(By.CSS_SELECTOR, "input")
325331
.is_selected()
326332
)
327333

@@ -399,6 +405,12 @@ def _get_tooltip(self):
399405
def get(self):
400406
return self._get_tooltip()
401407

408+
def find_inside(self, selector):
409+
return self.get().find_element(By.CSS_SELECTOR, selector)
410+
411+
def find_all_inside(self, selector):
412+
return self.get().find_elements(By.CSS_SELECTOR, selector)
413+
402414
def exists(self):
403415
self.mixin._wait_for_table(self.id)
404416

@@ -412,11 +424,7 @@ def missing(self):
412424
return len(self.mixin.find_elements(".dash-tooltip")) == 0
413425

414426
def get_text(self):
415-
return (
416-
self._get_tooltip()
417-
.find_element_by_css_selector(".dash-table-tooltip")
418-
.get_attribute("innerHTML")
419-
)
427+
return self.find_inside(".dash-table-tooltip").get_attribute("innerHTML")
420428

421429

422430
class DataTableToggleColumnsFacade(object):

components/dash-table/tests/selenium/test_edit.py

Lines changed: 13 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@ def test_edit001_can_delete_dropdown(test, props):
2929
cell.click()
3030
assert cell.is_dropdown()
3131

32-
cell.get().find_element_by_css_selector(".Select-clear").click()
33-
assert cell.get().find_element_by_css_selector(".Select-placeholder") is not None
32+
cell.find_inside(".Select-clear").click()
33+
assert cell.find_inside(".Select-placeholder") is not None
3434

3535
assert test.get_log_errors() == []
3636

@@ -45,13 +45,13 @@ def test_edit002_can_delete_dropown_and_set(test, props):
4545
cell.click()
4646
assert cell.is_dropdown()
4747

48-
cell.get().find_element_by_css_selector(".Select-clear").click()
49-
assert cell.get().find_element_by_css_selector(".Select-placeholder") is not None
48+
cell.find_inside(".Select-clear").click()
49+
assert cell.find_inside(".Select-placeholder") is not None
5050

51-
cell.get().find_element_by_css_selector(".Select-arrow").click()
52-
cell.get().find_element_by_css_selector(".Select-option").click()
51+
cell.find_inside(".Select-arrow").click()
52+
cell.find_inside(".Select-option").click()
5353

54-
assert len(cell.get().find_elements_by_css_selector(".Select-placeholder")) == 0
54+
assert len(cell.find_all_inside(".Select-placeholder")) == 0
5555

5656
assert test.get_log_errors() == []
5757

@@ -63,22 +63,19 @@ def test_edit003_can_edit_dropdown(test, props):
6363
target = test.table("table")
6464
cell = target.cell(0, "bbb")
6565

66-
cell.get().find_element_by_css_selector(".Select-arrow").click()
67-
cell.get().find_element_by_css_selector(".Select-arrow").click()
66+
cell.find_inside(".Select-arrow").click()
67+
cell.find_inside(".Select-arrow").click()
6868

69-
for i in range(len(cell.get().find_elements_by_css_selector(".Select-option"))):
70-
option = cell.get().find_elements_by_css_selector(".Select-option")[i]
69+
for i in range(len(cell.find_all_inside(".Select-option"))):
70+
option = cell.find_all_inside(".Select-option")[i]
7171

7272
value = option.get_attribute("innerHTML")
7373
option.click()
7474

7575
assert (
76-
cell.get()
77-
.find_element_by_css_selector(".Select-value-label")
78-
.get_attribute("innerHTML")
79-
== value
76+
cell.find_inside(".Select-value-label").get_attribute("innerHTML") == value
8077
)
81-
cell.get().find_element_by_css_selector(".Select-arrow").click()
78+
cell.find_inside(".Select-arrow").click()
8279

8380
assert test.get_log_errors() == []
8481

components/dash-table/tests/selenium/test_editable.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -73,10 +73,10 @@ def test_tedi001_loading_on_data_change(test):
7373
test.find_element("#blocking").click()
7474
target.is_loading()
7575
target.cell(0, 0).click()
76-
assert len(target.cell(0, 0).get().find_elements_by_css_selector("input")) == 0
76+
assert len(target.cell(0, 0).find_all_inside("input")) == 0
7777

7878
target.is_ready()
79-
assert target.cell(0, 0).get().find_element_by_css_selector("input") is not None
79+
assert target.cell(0, 0).find_inside("input") is not None
8080
assert test.get_log_errors() == []
8181

8282

@@ -91,10 +91,10 @@ def test_tedi002_ready_on_non_data_change(test):
9191
test.find_element("#non-blocking").click()
9292
target.is_ready()
9393
target.cell(0, 0).click()
94-
assert target.cell(0, 0).get().find_element_by_css_selector("input") is not None
94+
assert target.cell(0, 0).find_inside("input") is not None
9595

9696
target.is_ready()
97-
assert target.cell(0, 0).get().find_element_by_css_selector("input") is not None
97+
assert target.cell(0, 0).find_inside("input") is not None
9898
assert test.get_log_errors() == []
9999

100100

components/dash-table/tests/selenium/test_empty.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,8 @@ def test_empt001_clear_(test):
4040
target = test.table("table")
4141

4242
assert target.is_ready()
43-
assert len(test.driver.find_elements_by_css_selector("tr")) == 3
44-
test.driver.find_element_by_css_selector("#clear-table").click()
43+
assert len(test.find_elements("tr")) == 3
44+
test.find_element("#clear-table").click()
4545
assert target.is_ready()
46-
assert len(test.driver.find_elements_by_css_selector("tr")) == 0
46+
assert len(test.find_elements("tr")) == 0
4747
assert test.get_log_errors() == []

components/dash-table/tests/selenium/test_filter2.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,7 @@ def test_spfi008_reset_updates(test):
207207
assert target.column("ddd").filter_value() == "lt 12500"
208208
assert target.column("eee").filter_value() == "is prime"
209209

210-
test.driver.find_element_by_css_selector("#btn").click()
210+
test.find_element("#btn").click()
211211

212212
assert target.cell(0, "ccc").get_text() == ccc0
213213
assert target.cell(1, "ccc").get_text() == ccc1

0 commit comments

Comments
 (0)