+9
-31
lines changedFilter options
+9
-31
lines changed Original file line number Diff line number Diff line change
@@ -37,6 +37,8 @@ def __init__(self, webelement) -> None:
37
37
raise UnexpectedTagNameException(
38
38
"Select only works on <select> elements, not on <%s>" %
39
39
webelement.tag_name)
40
+
if not webelement.is_enabled():
41
+
raise NotImplementedError("Select element is disabled and may not be used.")
40
42
self._el = webelement
41
43
multi = self._el.get_dom_attribute("multiple")
42
44
self.is_multiple = multi and multi != "false"
Original file line number Diff line number Diff line change
@@ -41,16 +41,6 @@ def test_select_by_index_single(driver, pages):
41
41
assert sel.first_selected_option.text == select['values'][x]
42
42
43
43
44
-
@pytest.mark.xfail_firefox(reason='https://bugzilla.mozilla.org/show_bug.cgi?id=1429403')
45
-
@pytest.mark.xfail_remote
46
-
def test_select_disabled_by_index(driver, pages):
47
-
pages.load("formPage.html")
48
-
sel = Select(driver.find_element(By.NAME, disabledSelect['name']))
49
-
selected = sel.first_selected_option
50
-
sel.select_by_index(1)
51
-
assert selected == sel.first_selected_option
52
-
53
-
54
44
def test_select_by_value_single(driver, pages):
55
45
pages.load("formPage.html")
56
46
for select in [singleSelectValues1]:
@@ -60,16 +50,6 @@ def test_select_by_value_single(driver, pages):
60
50
assert sel.first_selected_option.text == select['values'][x]
61
51
62
52
63
-
@pytest.mark.xfail_firefox(reason='https://bugzilla.mozilla.org/show_bug.cgi?id=1429403')
64
-
@pytest.mark.xfail_remote
65
-
def test_select_disabled_by_value(driver, pages):
66
-
pages.load("formPage.html")
67
-
sel = Select(driver.find_element(By.NAME, disabledSelect['name']))
68
-
selected = sel.first_selected_option
69
-
sel.select_by_value('bar')
70
-
assert selected == sel.first_selected_option
71
-
72
-
73
53
def test_select_by_visible_text_single(driver, pages):
74
54
pages.load("formPage.html")
75
55
@@ -97,16 +77,6 @@ def test_select_by_visible_text_single(driver, pages):
97
77
# assert sel.first_selected_option.text == select['values'][x]
98
78
99
79
100
-
@pytest.mark.xfail_firefox(reason='https://bugzilla.mozilla.org/show_bug.cgi?id=1429403')
101
-
@pytest.mark.xfail_remote
102
-
def test_select_disabled_by_visible_text(driver, pages):
103
-
pages.load("formPage.html")
104
-
sel = Select(driver.find_element(By.NAME, disabledSelect['name']))
105
-
selected = sel.first_selected_option
106
-
sel.select_by_visible_text('Bar')
107
-
assert selected == sel.first_selected_option
108
-
109
-
110
80
def test_select_by_index_multiple(driver, pages):
111
81
pages.load("formPage.html")
112
82
@@ -247,7 +217,7 @@ def test_get_options(driver, pages):
247
217
248
218
def test_get_all_selected_options_single(driver, pages):
249
219
pages.load("formPage.html")
250
-
for select in [singleSelectValues1, singleSelectValues2, disabledSelect]:
220
+
for select in [singleSelectValues1, singleSelectValues2]:
251
221
opts = Select(driver.find_element(By.NAME, select['name'])).all_selected_options
252
222
assert len(opts) == 1
253
223
assert opts[0].text == select['values'][0]
@@ -284,6 +254,12 @@ def test_raises_exception_for_invalid_tag_name(driver, pages):
284
254
Select(driver.find_element(By.TAG_NAME, "div"))
285
255
286
256
257
+
def test_raises_exception_for_disabled_element(driver, pages):
258
+
pages.load("formPage.html")
259
+
with pytest.raises(NotImplementedError):
260
+
Select(driver.find_element(By.NAME, disabledSelect["name"]))
261
+
262
+
287
263
def test_deselect_by_index_non_existent(driver, pages):
288
264
pages.load("formPage.html")
289
265
for select in [multiSelectValues1, multiSelectValues2]:
You can’t perform that action at this time.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4