diff --git a/src/widgetastic_patternfly5/components/menus/dropdown.py b/src/widgetastic_patternfly5/components/menus/dropdown.py index 89fcfbd..0473ebc 100644 --- a/src/widgetastic_patternfly5/components/menus/dropdown.py +++ b/src/widgetastic_patternfly5/components/menus/dropdown.py @@ -167,7 +167,10 @@ def item_enabled(self, item, close=True, **kwargs): # input element don't have such disabled attributes it at level of session. is_el_enabled = el.is_enabled() else: - is_el_enabled = "pf-m-disabled" not in self.browser.classes(el) + aria_disabled = str(self.browser.get_attribute("aria-disabled", el)).lower() + is_el_enabled = ( + "pf-m-disabled" not in self.browser.classes(el) and aria_disabled != "true" + ) if close: self.close() diff --git a/testing/components/menus/test_dropdown.py b/testing/components/menus/test_dropdown.py index a0676f8..232dee8 100644 --- a/testing/components/menus/test_dropdown.py +++ b/testing/components/menus/test_dropdown.py @@ -55,6 +55,7 @@ def test_dropdown_items(dropdown): assert not dropdown.has_item("Non existing items") assert dropdown.item_enabled("Link") assert not dropdown.item_enabled("Disabled Link") + assert not dropdown.item_enabled("Aria-disabled Link") def test_dropdown_open(dropdown): @@ -70,5 +71,7 @@ def test_dropdown_item_select(dropdown): assert not dropdown.is_open with pytest.raises(DropdownItemDisabled): dropdown.item_select("Disabled Link") + with pytest.raises(DropdownItemDisabled): + dropdown.item_select("Aria-disabled Link") with pytest.raises(DropdownItemNotFound): dropdown.item_select("Non existing items")