Skip to content

Commit 4d947d9

Browse files
committed
Add a new method: "self.is_element_enabled(selector)"
1 parent edb76bb commit 4d947d9

File tree

3 files changed

+24
-0
lines changed

3 files changed

+24
-0
lines changed

help_docs/method_summary.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,8 @@ self.is_element_present(selector, by=By.CSS_SELECTOR)
6060

6161
self.is_element_visible(selector, by=By.CSS_SELECTOR)
6262

63+
self.is_element_enabled(selector, by=By.CSS_SELECTOR)
64+
6365
self.is_text_visible(text, selector="html", by=By.CSS_SELECTOR)
6466

6567
self.is_link_text_visible(link_text)

seleniumbase/fixtures/base_case.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -578,6 +578,11 @@ def is_element_visible(self, selector, by=By.CSS_SELECTOR):
578578
selector, by = self.__recalculate_selector(selector, by)
579579
return page_actions.is_element_visible(self.driver, selector, by)
580580

581+
def is_element_enabled(self, selector, by=By.CSS_SELECTOR):
582+
self.wait_for_ready_state_complete()
583+
selector, by = self.__recalculate_selector(selector, by)
584+
return page_actions.is_element_enabled(self.driver, selector, by)
585+
581586
def is_text_visible(self, text, selector="html", by=By.CSS_SELECTOR):
582587
self.wait_for_ready_state_complete()
583588
time.sleep(0.01)

seleniumbase/fixtures/page_actions.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,23 @@ def is_element_visible(driver, selector, by=By.CSS_SELECTOR):
7373
return False
7474

7575

76+
def is_element_enabled(driver, selector, by=By.CSS_SELECTOR):
77+
"""
78+
Returns whether the specified element selector is enabled on the page.
79+
@Params
80+
driver - the webdriver object (required)
81+
selector - the locator for identifying the page element (required)
82+
by - the type of selector being used (Default: By.CSS_SELECTOR)
83+
@Returns
84+
Boolean (is element enabled)
85+
"""
86+
try:
87+
element = driver.find_element(by=by, value=selector)
88+
return element.is_enabled()
89+
except Exception:
90+
return False
91+
92+
7693
def is_text_visible(driver, text, selector, by=By.CSS_SELECTOR):
7794
"""
7895
Returns whether the specified text is visible in the specified selector.

0 commit comments

Comments
 (0)