Skip to content

Commit 8764b11

Browse files
committed
[py] Replace deprecated get_attribute() in tests
Signed-off-by: Viet Nguyen Duc <[email protected]>
1 parent d87cd35 commit 8764b11

21 files changed

+140
-140
lines changed

py/selenium/webdriver/support/expected_conditions.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,7 @@ def text_to_be_present_in_element_value(
259259

260260
def _predicate(driver: WebDriverOrWebElement):
261261
try:
262-
element_text = driver.find_element(*locator).get_attribute("value")
262+
element_text = driver.find_element(*locator).get_property("value")
263263
return text_ in element_text
264264
except StaleElementReferenceException:
265265
return False
@@ -278,7 +278,7 @@ def text_to_be_present_in_element_attribute(
278278

279279
def _predicate(driver: WebDriverOrWebElement):
280280
try:
281-
element_text = driver.find_element(*locator).get_attribute(attribute_)
281+
element_text = driver.find_element(*locator).get_dom_attribute(attribute_)
282282
if element_text is None:
283283
return False
284284
return text_ in element_text
@@ -483,7 +483,7 @@ def element_attribute_to_include(locator: Tuple[str, str], attribute_: str) -> C
483483

484484
def _predicate(driver: WebDriverOrWebElement):
485485
try:
486-
element_attribute = driver.find_element(*locator).get_attribute(attribute_)
486+
element_attribute = driver.find_element(*locator).get_dom_attribute(attribute_)
487487
return element_attribute is not None
488488
except StaleElementReferenceException:
489489
return False

py/selenium/webdriver/support/select.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ def select_by_index(self, index: int) -> None:
9494
"""
9595
match = str(index)
9696
for opt in self.options:
97-
if opt.get_attribute("index") == match:
97+
if opt.get_dom_attribute("index") == match:
9898
self._set_selected(opt)
9999
return
100100
raise NoSuchElementException(f"Could not locate element with index {index}")
@@ -182,7 +182,7 @@ def deselect_by_index(self, index: int) -> None:
182182
if not self.is_multiple:
183183
raise NotImplementedError("You may only deselect options of a multi-select")
184184
for opt in self.options:
185-
if opt.get_attribute("index") == str(index):
185+
if opt.get_dom_attribute("index") == str(index):
186186
self._unset_selected(opt)
187187
return
188188
raise NoSuchElementException(f"Could not locate element with index {index}")

py/test/selenium/webdriver/common/api_example_tests.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ def test_find_elements_by_xpath(driver, pages):
5353
pages.load("nestedElements.html")
5454
elems = driver.find_elements(By.XPATH, "//option")
5555
assert 48 == len(elems)
56-
assert "One" == elems[0].get_attribute("value")
56+
assert "One" == elems[0].get_property("value")
5757

5858

5959
def test_find_elements_by_name(driver, pages):
@@ -66,28 +66,28 @@ def test_find_elements_by_name_in_element_context(driver, pages):
6666
pages.load("nestedElements.html")
6767
elem = driver.find_element(By.NAME, "form2")
6868
sub_elem = elem.find_element(By.NAME, "selectomatic")
69-
assert "2" == sub_elem.get_attribute("id")
69+
assert "2" == sub_elem.get_dom_attribute("id")
7070

7171

7272
def test_find_elements_by_link_text_in_element_context(driver, pages):
7373
pages.load("nestedElements.html")
7474
elem = driver.find_element(By.NAME, "div1")
7575
sub_elem = elem.find_element(By.LINK_TEXT, "hello world")
76-
assert "link1" == sub_elem.get_attribute("name")
76+
assert "link1" == sub_elem.get_dom_attribute("name")
7777

7878

7979
def test_find_element_by_id_in_element_context(driver, pages):
8080
pages.load("nestedElements.html")
8181
elem = driver.find_element(By.NAME, "form2")
8282
sub_elem = elem.find_element(By.ID, "2")
83-
assert "selectomatic" == sub_elem.get_attribute("name")
83+
assert "selectomatic" == sub_elem.get_dom_attribute("name")
8484

8585

8686
def test_find_element_by_xpath_in_element_context(driver, pages):
8787
pages.load("nestedElements.html")
8888
elem = driver.find_element(By.NAME, "form2")
8989
sub_elem = elem.find_element(By.XPATH, "select")
90-
assert "2" == sub_elem.get_attribute("id")
90+
assert "2" == sub_elem.get_dom_attribute("id")
9191

9292

9393
def test_find_element_by_xpath_in_element_context_not_found(driver, pages):
@@ -103,7 +103,7 @@ def test_should_be_able_to_enter_data_into_form_fields(driver, pages):
103103
elem.clear()
104104
elem.send_keys("some text")
105105
elem = driver.find_element(By.XPATH, "//form[@name='someForm']/input[@id='username']")
106-
assert "some text" == elem.get_attribute("value")
106+
assert "some text" == elem.get_property("value")
107107

108108

109109
def test_find_element_by_tag_name(driver, pages):
@@ -164,7 +164,7 @@ def test_get_attribute(driver, pages):
164164
url = pages.url("xhtmlTest.html")
165165
driver.get(url)
166166
elem = driver.find_element(By.ID, "id1")
167-
attr = elem.get_attribute("href")
167+
attr = elem.get_property("href")
168168
assert f"{url}#" == attr
169169

170170

@@ -173,7 +173,7 @@ def test_get_implicit_attribute(driver, pages):
173173
elems = driver.find_elements(By.XPATH, "//option")
174174
assert len(elems) >= 3
175175
for i, elem in enumerate(elems[:3]):
176-
assert i == int(elem.get_attribute("index"))
176+
assert i == int(elem.get_property("index"))
177177

178178

179179
def test_get_dom_attribute(driver, pages):

py/test/selenium/webdriver/common/children_finding_tests.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ def test_should_find_element_by_xpath(driver, pages):
2626
pages.load("nestedElements.html")
2727
element = driver.find_element(By.NAME, "form2")
2828
child = element.find_element(By.XPATH, "select")
29-
assert child.get_attribute("id") == "2"
29+
assert child.get_dom_attribute("id") == "2"
3030

3131

3232
def test_should_not_find_element_by_xpath(driver, pages):
@@ -72,7 +72,7 @@ def test_should_find_element_by_name(driver, pages):
7272
pages.load("nestedElements.html")
7373
element = driver.find_element(By.NAME, "form2")
7474
child = element.find_element(By.NAME, "selectomatic")
75-
assert child.get_attribute("id") == "2"
75+
assert child.get_dom_attribute("id") == "2"
7676

7777

7878
def test_should_find_elements_by_name(driver, pages):
@@ -86,7 +86,7 @@ def test_should_find_element_by_id(driver, pages):
8686
pages.load("nestedElements.html")
8787
element = driver.find_element(By.NAME, "form2")
8888
child = element.find_element(By.ID, "2")
89-
assert child.get_attribute("name") == "selectomatic"
89+
assert child.get_dom_attribute("name") == "selectomatic"
9090

9191

9292
def test_should_find_elements_by_id(driver, pages):
@@ -114,16 +114,16 @@ def test_should_find_element_by_link_text(driver, pages):
114114
pages.load("nestedElements.html")
115115
element = driver.find_element(By.NAME, "div1")
116116
child = element.find_element(By.LINK_TEXT, "hello world")
117-
assert child.get_attribute("name") == "link1"
117+
assert child.get_dom_attribute("name") == "link1"
118118

119119

120120
def test_should_find_elements_by_link_text(driver, pages):
121121
pages.load("nestedElements.html")
122122
element = driver.find_element(By.NAME, "div1")
123123
children = element.find_elements(By.LINK_TEXT, "hello world")
124124
assert len(children) == 2
125-
assert "link1" == children[0].get_attribute("name")
126-
assert "link2" == children[1].get_attribute("name")
125+
assert "link1" == children[0].get_dom_attribute("name")
126+
assert "link2" == children[1].get_dom_attribute("name")
127127

128128

129129
def test_should_find_element_by_class_name(driver, pages):
@@ -144,7 +144,7 @@ def test_should_find_element_by_tag_name(driver, pages):
144144
pages.load("nestedElements.html")
145145
parent = driver.find_element(By.NAME, "div1")
146146
element = parent.find_element(By.TAG_NAME, "a")
147-
assert "link1" == element.get_attribute("name")
147+
assert "link1" == element.get_dom_attribute("name")
148148

149149

150150
def test_should_find_elements_by_tag_name(driver, pages):
@@ -158,7 +158,7 @@ def test_should_be_able_to_find_an_element_by_css_selector(driver, pages):
158158
pages.load("nestedElements.html")
159159
parent = driver.find_element(By.NAME, "form2")
160160
element = parent.find_element(By.CSS_SELECTOR, '*[name="selectomatic"]')
161-
assert "2" == element.get_attribute("id")
161+
assert "2" == element.get_dom_attribute("id")
162162

163163

164164
def test_should_be_able_to_find_multiple_elements_by_css_selector(driver, pages):

py/test/selenium/webdriver/common/clear_tests.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ def test_writable_text_input_should_clear(driver, pages):
2525
pages.load("readOnlyPage.html")
2626
element = driver.find_element(By.ID, "writableTextInput")
2727
element.clear()
28-
assert "" == element.get_attribute("value")
28+
assert "" == element.get_property("value")
2929

3030

3131
@pytest.mark.xfail_chrome(reason="https://bugs.chromium.org/p/chromedriver/issues/detail?id=4743")
@@ -49,7 +49,7 @@ def test_writable_text_area_should_clear(driver, pages):
4949
pages.load("readOnlyPage.html")
5050
element = driver.find_element(By.ID, "writableTextArea")
5151
element.clear()
52-
assert "" == element.get_attribute("value")
52+
assert "" == element.get_property("value")
5353

5454

5555
@pytest.mark.xfail_chrome(reason="https://bugs.chromium.org/p/chromedriver/issues/detail?id=4743")

py/test/selenium/webdriver/common/correct_event_firing_tests.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ def test_should_emit_click_event_when_clicking_on_atext_input_element(driver, pa
9999
clicker = driver.find_element(By.ID, "clickField")
100100
clicker.click()
101101

102-
assert clicker.get_attribute("value") == "Clicked"
102+
assert clicker.get_property("value") == "Clicked"
103103

104104

105105
@pytest.mark.xfail_safari

py/test/selenium/webdriver/common/driver_element_finding_tests.py

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -27,19 +27,19 @@
2727
def test_should_be_able_to_find_asingle_element_by_id(driver, pages):
2828
pages.load("xhtmlTest.html")
2929
element = driver.find_element(By.ID, "linkId")
30-
assert element.get_attribute("id") == "linkId"
30+
assert element.get_dom_attribute("id") == "linkId"
3131

3232

3333
def test_should_be_able_to_find_asingle_element_by_numeric_id(driver, pages):
3434
pages.load("nestedElements.html")
3535
element = driver.find_element(By.ID, "2")
36-
assert element.get_attribute("id") == "2"
36+
assert element.get_dom_attribute("id") == "2"
3737

3838

3939
def test_should_be_able_to_find_an_element_with_css_escape(driver, pages):
4040
pages.load("idElements.html")
4141
element = driver.find_element(By.ID, "with.dots")
42-
assert element.get_attribute("id") == "with.dots"
42+
assert element.get_dom_attribute("id") == "with.dots"
4343

4444

4545
def test_should_be_able_to_find_multiple_elements_by_id(driver, pages):
@@ -106,7 +106,7 @@ def test_no_such_element_error(driver, pages):
106106
def test_should_be_able_to_find_asingle_element_by_name(driver, pages):
107107
pages.load("formPage.html")
108108
element = driver.find_element(By.NAME, "checky")
109-
assert element.get_attribute("value") == "furrfu"
109+
assert element.get_property("value") == "furrfu"
110110

111111

112112
def test_should_be_able_to_find_multiple_elements_by_name(driver, pages):
@@ -118,7 +118,7 @@ def test_should_be_able_to_find_multiple_elements_by_name(driver, pages):
118118
def test_should_be_able_to_find_an_element_that_does_not_support_the_name_property(driver, pages):
119119
pages.load("nestedElements.html")
120120
element = driver.find_element(By.NAME, "div1")
121-
assert element.get_attribute("name") == "div1"
121+
assert element.get_dom_attribute("name") == "div1"
122122

123123

124124
# By.name negative
@@ -356,7 +356,7 @@ def test_should_be_able_to_find_an_element_by_xpath_with_multiple_attributes(dri
356356
pages.load("formPage.html")
357357
element = driver.find_element(By.XPATH, "//form[@name='optional']/input[@type='submit' and @value='Click!']")
358358
assert element.tag_name.lower() == "input"
359-
assert element.get_attribute("value") == "Click!"
359+
assert element.get_property("value") == "Click!"
360360

361361

362362
def test_finding_alink_by_xpath_should_locate_an_element_with_the_given_text(driver, pages):
@@ -489,7 +489,7 @@ def test_should_be_able_to_find_asingle_element_by_css_selector(driver, pages):
489489
pages.load("xhtmlTest.html")
490490
element = driver.find_element(By.CSS_SELECTOR, "div.content")
491491
assert element.tag_name.lower() == "div"
492-
assert element.get_attribute("class") == "content"
492+
assert element.get_dom_attribute("class") == "content"
493493

494494

495495
def test_should_be_able_to_find_multiple_elements_by_css_selector(driver, pages):
@@ -502,33 +502,33 @@ def test_should_be_able_to_find_asingle_element_by_compound_css_selector(driver,
502502
pages.load("xhtmlTest.html")
503503
element = driver.find_element(By.CSS_SELECTOR, "div.extraDiv, div.content")
504504
assert element.tag_name.lower() == "div"
505-
assert element.get_attribute("class") == "content"
505+
assert element.get_dom_attribute("class") == "content"
506506

507507

508508
def test_should_be_able_to_find_multiple_elements_by_compound_css_selector(driver, pages):
509509
pages.load("xhtmlTest.html")
510510
elements = driver.find_elements(By.CSS_SELECTOR, "div.extraDiv, div.content")
511511
assert len(elements) > 1
512-
assert elements[0].get_attribute("class") == "content"
513-
assert elements[1].get_attribute("class") == "extraDiv"
512+
assert elements[0].get_dom_attribute("class") == "content"
513+
assert elements[1].get_dom_attribute("class") == "extraDiv"
514514

515515

516516
def test_should_be_able_to_find_an_element_by_boolean_attribute_using_css_selector(driver, pages):
517517
pages.load("locators_tests/boolean_attribute_selected.html")
518518
element = driver.find_element(By.CSS_SELECTOR, "option[selected='selected']")
519-
assert element.get_attribute("value") == "two"
519+
assert element.get_property("value") == "two"
520520

521521

522522
def test_should_be_able_to_find_an_element_by_boolean_attribute_using_short_css_selector(driver, pages):
523523
pages.load("locators_tests/boolean_attribute_selected.html")
524524
element = driver.find_element(By.CSS_SELECTOR, "option[selected]")
525-
assert element.get_attribute("value") == "two"
525+
assert element.get_property("value") == "two"
526526

527527

528528
def test_should_be_able_to_find_an_element_by_boolean_attribute_using_short_css_selector_on_html_4_page(driver, pages):
529529
pages.load("locators_tests/boolean_attribute_selected_html4.html")
530530
element = driver.find_element(By.CSS_SELECTOR, "option[selected]")
531-
assert element.get_attribute("value") == "two"
531+
assert element.get_property("value") == "two"
532532

533533

534534
# By.css_Selector negative
@@ -600,14 +600,14 @@ def test_should_be_able_to_find_multiple_links_by_text(driver, pages):
600600
def test_should_find_element_by_link_text_containing_equals_sign(driver, pages):
601601
pages.load("xhtmlTest.html")
602602
element = driver.find_element(By.LINK_TEXT, "Link=equalssign")
603-
assert element.get_attribute("id") == "linkWithEqualsSign"
603+
assert element.get_dom_attribute("id") == "linkWithEqualsSign"
604604

605605

606606
def test_should_find_multiple_elements_by_link_text_containing_equals_sign(driver, pages):
607607
pages.load("xhtmlTest.html")
608608
elements = driver.find_elements(By.LINK_TEXT, "Link=equalssign")
609609
assert 1 == len(elements)
610-
assert elements[0].get_attribute("id") == "linkWithEqualsSign"
610+
assert elements[0].get_dom_attribute("id") == "linkWithEqualsSign"
611611

612612

613613
def test_finds_by_link_text_on_xhtml_page(driver, pages):
@@ -629,7 +629,7 @@ def test_link_with_formatting_tags(driver, pages):
629629
def test_driver_can_get_link_by_link_test_ignoring_trailing_whitespace(driver, pages):
630630
pages.load("simpleTest.html")
631631
link = driver.find_element(By.LINK_TEXT, "link with trailing space")
632-
assert link.get_attribute("id") == "linkWithTrailingSpace"
632+
assert link.get_dom_attribute("id") == "linkWithTrailingSpace"
633633
assert link.text == "link with trailing space"
634634

635635

@@ -666,14 +666,14 @@ def test_should_be_able_to_find_asingle_element_by_partial_link_text(driver, pag
666666
def test_should_find_element_by_partial_link_text_containing_equals_sign(driver, pages):
667667
pages.load("xhtmlTest.html")
668668
element = driver.find_element(By.PARTIAL_LINK_TEXT, "Link=")
669-
assert element.get_attribute("id") == "linkWithEqualsSign"
669+
assert element.get_dom_attribute("id") == "linkWithEqualsSign"
670670

671671

672672
def test_should_find_multiple_elements_by_partial_link_text_containing_equals_sign(driver, pages):
673673
pages.load("xhtmlTest.html")
674674
elements = driver.find_elements(By.PARTIAL_LINK_TEXT, "Link=")
675675
assert len(elements) == 1
676-
assert elements[0].get_attribute("id") == "linkWithEqualsSign"
676+
assert elements[0].get_dom_attribute("id") == "linkWithEqualsSign"
677677

678678

679679
# Misc tests
@@ -693,22 +693,22 @@ def test_when_finding_by_name_should_not_return_by_id(driver, pages):
693693
pages.load("formPage.html")
694694

695695
element = driver.find_element(By.NAME, "id-name1")
696-
assert element.get_attribute("value") == "name"
696+
assert element.get_property("value") == "name"
697697

698698
element = driver.find_element(By.ID, "id-name1")
699-
assert element.get_attribute("value") == "id"
699+
assert element.get_property("value") == "id"
700700

701701
element = driver.find_element(By.NAME, "id-name2")
702-
assert element.get_attribute("value") == "name"
702+
assert element.get_property("value") == "name"
703703

704704
element = driver.find_element(By.ID, "id-name2")
705-
assert element.get_attribute("value") == "id"
705+
assert element.get_property("value") == "id"
706706

707707

708708
def test_should_be_able_to_find_ahidden_elements_by_name(driver, pages):
709709
pages.load("formPage.html")
710710
element = driver.find_element(By.NAME, "hidden")
711-
assert element.get_attribute("name") == "hidden"
711+
assert element.get_dom_attribute("name") == "hidden"
712712

713713

714714
def test_should_not_be_able_to_find_an_element_on_a_blank_page(driver, pages):

py/test/selenium/webdriver/common/executing_async_javascript_tests.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ def test_should_be_able_to_execute_asynchronous_scripts(driver, pages):
157157

158158
typer = driver.find_element(by=By.NAME, value="typer")
159159
typer.send_keys("bob")
160-
assert "bob" == typer.get_attribute("value")
160+
assert "bob" == typer.get_property("value")
161161

162162
driver.find_element(by=By.ID, value="red").click()
163163
driver.find_element(by=By.NAME, value="submit").click()
@@ -171,7 +171,7 @@ def test_should_be_able_to_execute_asynchronous_scripts(driver, pages):
171171
window.registerListener(arguments[arguments.length - 1]);"""
172172
)
173173
assert "bob" == text
174-
assert "" == typer.get_attribute("value")
174+
assert "" == typer.get_property("value")
175175

176176
assert 2 == len(
177177
driver.find_elements(by=By.TAG_NAME, value="div")

0 commit comments

Comments
 (0)