Commit 9a5326bc by JonahStanley

Made a css_html to obtain the html of the css element.

This works like css_click in that it will retry if there was a stale element reference exception
parent 852292eb
...@@ -60,8 +60,7 @@ def change_date(_step, new_date): ...@@ -60,8 +60,7 @@ def change_date(_step, new_date):
@step(u'I should see the date "([^"]*)"$') @step(u'I should see the date "([^"]*)"$')
def check_date(_step, date): def check_date(_step, date):
date_css = 'span.date-display' date_css = 'span.date-display'
date_html = world.css_find(date_css) assert date == world.css_html(date_css)
assert date == date_html.html
@step(u'I modify the handout to "([^"]*)"$') @step(u'I modify the handout to "([^"]*)"$')
...@@ -74,8 +73,7 @@ def edit_handouts(_step, text): ...@@ -74,8 +73,7 @@ def edit_handouts(_step, text):
@step(u'I see the handout "([^"]*)"$') @step(u'I see the handout "([^"]*)"$')
def check_handout(_step, handout): def check_handout(_step, handout):
handout_css = 'div.handouts-content' handout_css = 'div.handouts-content'
handouts = world.css_find(handout_css) assert handout in world.css_html(handout_css)
assert handout in handouts.html
def change_text(text): def change_text(text):
......
...@@ -47,7 +47,7 @@ def confirm_change(step): ...@@ -47,7 +47,7 @@ def confirm_change(step):
range_css = '.range' range_css = '.range'
all_ranges = world.css_find(range_css) all_ranges = world.css_find(range_css)
for i in range(len(all_ranges)): for i in range(len(all_ranges)):
assert all_ranges[i].html != '0-50' assert world.css_html(range_css, index=i) != '0-50'
@step(u'I change assignment type "([^"]*)" to "([^"]*)"$') @step(u'I change assignment type "([^"]*)" to "([^"]*)"$')
......
...@@ -54,6 +54,6 @@ def get_index(name): ...@@ -54,6 +54,6 @@ def get_index(name):
page_name_css = 'section[data-type="HTMLModule"]' page_name_css = 'section[data-type="HTMLModule"]'
all_pages = world.css_find(page_name_css) all_pages = world.css_find(page_name_css)
for i in range(len(all_pages)): for i in range(len(all_pages)):
if all_pages[i].html == '\n {name}\n'.format(name=name): if world.css_html(page_name_css, index=i) == '\n {name}\n'.format(name=name):
return i return i
return -1 return -1
...@@ -67,7 +67,7 @@ def no_duplicate(_step, file_name): ...@@ -67,7 +67,7 @@ def no_duplicate(_step, file_name):
all_names = world.css_find(names_css) all_names = world.css_find(names_css)
only_one = False only_one = False
for i in range(len(all_names)): for i in range(len(all_names)):
if file_name == all_names[i].html: if file_name == world.css_html(names_css, index=i):
only_one = not only_one only_one = not only_one
assert only_one assert only_one
...@@ -100,7 +100,7 @@ def get_index(file_name): ...@@ -100,7 +100,7 @@ def get_index(file_name):
names_css = 'td.name-col > a.filename' names_css = 'td.name-col > a.filename'
all_names = world.css_find(names_css) all_names = world.css_find(names_css)
for i in range(len(all_names)): for i in range(len(all_names)):
if file_name == all_names[i].html: if file_name == world.css_html(names_css, index=i):
return i return i
return -1 return -1
......
...@@ -168,6 +168,21 @@ def css_text(css_selector): ...@@ -168,6 +168,21 @@ def css_text(css_selector):
@world.absorb @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): def css_visible(css_selector):
assert is_css_present(css_selector) assert is_css_present(css_selector)
return world.browser.find_by_css(css_selector).visible return world.browser.find_by_css(css_selector).visible
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment