From 2c0c8dfb90cc1e40e827633ed0e274aa980693b5 Mon Sep 17 00:00:00 2001 From: JonahStanley Date: Mon, 8 Jul 2013 12:59:37 -0400 Subject: [PATCH] Fixed structure of css_text and css_value --- common/djangoapps/terrain/ui_helpers.py | 32 ++++++++++++++----------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/common/djangoapps/terrain/ui_helpers.py b/common/djangoapps/terrain/ui_helpers.py index fee96a9938..076384d30c 100644 --- a/common/djangoapps/terrain/ui_helpers.py +++ b/common/djangoapps/terrain/ui_helpers.py @@ -184,31 +184,35 @@ def click_link(partial_text, index=0, max_attempts=5): @world.absorb -def css_text(css_selector, index=0): +def css_text(css_selector, index=0, max_attempts=5): # Wait for the css selector to appear if world.is_css_present(css_selector): - try: - return world.browser.find_by_css(css_selector)[index].text - except StaleElementReferenceException: - # The DOM was still redrawing. Wait a second and try again. - world.wait(1) - return world.browser.find_by_css(css_selector)[index].text + attempt = 0 + while attempt < max_attempts: + try: + return world.browser.find_by_css(css_selector)[index].text + break + except: + attempt += 1 + assert_true(attempt < max_attempts, 'Could not access {}'.format(css_selector)) else: return "" @world.absorb -def css_value(css_selector, index=0): +def css_value(css_selector, index=0, max_attempts=5): # Wait for the css selector to appear if world.is_css_present(css_selector): - try: - return world.browser.find_by_css(css_selector)[index].value - except StaleElementReferenceException: - # The DOM was still redrawing. Wait a second and try again. - world.wait(1) - return world.browser.find_by_css(css_selector)[index].value + attempt = 0 + while attempt < max_attempts: + try: + return world.browser.find_by_css(css_selector)[index].value + break + except: + attempt += 1 + assert_true(attempt < max_attempts, 'Could not access {}'.format(css_selector)) else: return ""