2424from selenium .webdriver .common .by import By
2525
2626disabledSelect = {'name' : 'no-select' , 'values' : ['Foo' ]}
27+ disabledSingleSelect = {'name' : 'single_disabled' , 'values' : ['Enabled' , 'Disabled' ]}
28+ disabledMultiSelect = {'name' : 'multi_disabled' , 'values' : ['Enabled' , 'Disabled' ]}
2729singleSelectValues1 = {'name' : 'selectomatic' , 'values' : ['One' , 'Two' , 'Four' , 'Still learning how to count, apparently' ]}
2830singleSelectValues2 = {'name' : 'redirect' , 'values' : ['One' , 'Two' ]}
2931singleSelectValuesWithSpaces = {'name' : 'select_with_spaces' , 'values' : ['One' , 'Two' , 'Four' , 'Still learning how to count, apparently' ]}
@@ -41,6 +43,13 @@ def test_select_by_index_single(driver, pages):
4143 assert sel .first_selected_option .text == select ['values' ][x ]
4244
4345
46+ def test_raises_exception_select_by_index_single_disabled (driver , pages ):
47+ pages .load ("formPage.html" )
48+ sel = Select (driver .find_element (By .NAME , disabledSingleSelect ['name' ]))
49+ with pytest .raises (NotImplementedError ):
50+ sel .select_by_index (1 )
51+
52+
4453def test_select_by_value_single (driver , pages ):
4554 pages .load ("formPage.html" )
4655 for select in [singleSelectValues1 ]:
@@ -50,6 +59,13 @@ def test_select_by_value_single(driver, pages):
5059 assert sel .first_selected_option .text == select ['values' ][x ]
5160
5261
62+ def test_raises_exception_select_by_value_single_disabled (driver , pages ):
63+ pages .load ("formPage.html" )
64+ sel = Select (driver .find_element (By .NAME , disabledSingleSelect ['name' ]))
65+ with pytest .raises (NotImplementedError ):
66+ sel .select_by_value (disabledSingleSelect ['values' ][1 ].lower ())
67+
68+
5369def test_select_by_visible_text_single (driver , pages ):
5470 pages .load ("formPage.html" )
5571
@@ -61,20 +77,11 @@ def test_select_by_visible_text_single(driver, pages):
6177 assert sel .first_selected_option .text == select ['values' ][x ]
6278
6379
64- # @pytest.mark.xfail_chrome(
65- # reason='https://bugs.chromium.org/p/chromedriver/issues/detail?id=822')
66- # @pytest.mark.xfail_chromiumedge(
67- # reason='https://bugs.chromium.org/p/chromedriver/issues/detail?id=822')
68- # @pytest.mark.xfail_safari
69- # def test_select_by_visible_text_should_normalize_spaces(driver, pages):
70- # pages.load("formPage.html")
71-
72- # for select in [singleSelectValuesWithSpaces]:
73- # sel = Select(driver.find_element(By.NAME, select['name']))
74- # for x in range(len(select['values'])):
75- # print(select['values'][x])
76- # sel.select_by_visible_text(select['values'][x])
77- # assert sel.first_selected_option.text == select['values'][x]
80+ def test_raises_exception_select_by_text_single_disabled (driver , pages ):
81+ pages .load ("formPage.html" )
82+ sel = Select (driver .find_element (By .NAME , disabledSingleSelect ['name' ]))
83+ with pytest .raises (NotImplementedError ):
84+ sel .select_by_visible_text (disabledSingleSelect ['values' ][1 ])
7885
7986
8087def test_select_by_index_multiple (driver , pages ):
@@ -91,6 +98,14 @@ def test_select_by_index_multiple(driver, pages):
9198 assert selected [j ].text == select ['values' ][j ]
9299
93100
101+ def test_raises_exception_select_by_index_multiple_disabled (driver , pages ):
102+ pages .load ("formPage.html" )
103+
104+ sel = Select (driver .find_element (By .NAME , disabledMultiSelect ['name' ]))
105+ with pytest .raises (NotImplementedError ):
106+ sel .select_by_index (1 )
107+
108+
94109def test_select_by_value_multiple (driver , pages ):
95110 pages .load ("formPage.html" )
96111
@@ -105,6 +120,14 @@ def test_select_by_value_multiple(driver, pages):
105120 assert selected [j ].text == select ['values' ][j ]
106121
107122
123+ def test_raises_exception_select_by_value_multiple_disabled (driver , pages ):
124+ pages .load ("formPage.html" )
125+
126+ sel = Select (driver .find_element (By .NAME , disabledMultiSelect ['name' ]))
127+ with pytest .raises (NotImplementedError ):
128+ sel .select_by_value (disabledMultiSelect ['values' ][1 ].lower ())
129+
130+
108131def test_select_by_visible_text_multiple (driver , pages ):
109132 pages .load ("formPage.html" )
110133
@@ -119,6 +142,14 @@ def test_select_by_visible_text_multiple(driver, pages):
119142 assert selected [j ].text == select ['values' ][j ]
120143
121144
145+ def test_raises_exception_select_by_text_multiple_disabled (driver , pages ):
146+ pages .load ("formPage.html" )
147+
148+ sel = Select (driver .find_element (By .NAME , disabledMultiSelect ['name' ]))
149+ with pytest .raises (NotImplementedError ):
150+ sel .select_by_visible_text (disabledMultiSelect ['values' ][1 ])
151+
152+
122153def test_deselect_all_single (driver , pages ):
123154 pages .load ("formPage.html" )
124155 for select in [singleSelectValues1 , singleSelectValues2 ]:
0 commit comments