Merge pull request #325 from edx/jonahstanley/fix-flakey-tests

Made a css_html to obtain the html of the css element.
This commit is contained in:
Jonah Stanley
2013-07-03 11:55:25 -07:00
7 changed files with 38 additions and 24 deletions

View File

@@ -153,20 +153,35 @@ def click_link(partial_text):
@world.absorb
def css_text(css_selector):
def css_text(css_selector, index=0):
# Wait for the css selector to appear
if world.is_css_present(css_selector):
try:
return world.browser.find_by_css(css_selector).first.text
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).first.text
return world.browser.find_by_css(css_selector)[index].text
else:
return ""
@world.absorb
def css_html(css_selector, index=0, max_attempts=5):
"""
Returns the HTML of a css_selector and will retry if there is a StaleElementReferenceException
"""
assert is_css_present(css_selector)
attempt = 0
while attempt < max_attempts:
try:
return world.browser.find_by_css(css_selector)[index].html
except:
attempt += 1
return ''
@world.absorb
def css_visible(css_selector):
assert is_css_present(css_selector)