From 367bdf18c808cd8b6637027623a5abdfff6513d3 Mon Sep 17 00:00:00 2001 From: cahrens Date: Mon, 11 Aug 2014 14:30:45 -0400 Subject: [PATCH] Improve stability of test_studio_outline tests. STUD-2084 --- common/test/acceptance/pages/studio/container.py | 9 +++++++++ common/test/acceptance/pages/studio/overview.py | 2 +- common/test/acceptance/pages/studio/utils.py | 2 ++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/common/test/acceptance/pages/studio/container.py b/common/test/acceptance/pages/studio/container.py index cd6b1fc181..bcc65107bd 100644 --- a/common/test/acceptance/pages/studio/container.py +++ b/common/test/acceptance/pages/studio/container.py @@ -55,6 +55,15 @@ class ContainerPage(PageObject): Promise(_is_finished_loading, 'Finished rendering the xblock wrappers.').fulfill() ) + def wait_for_component_menu(self): + """ + Waits until the menu bar of components is present on the page. + """ + EmptyPromise( + lambda: self.q(css='div.add-xblock-component').present, + 'Wait for the menu of components to be present' + ).fulfill() + @property def xblocks(self): """ diff --git a/common/test/acceptance/pages/studio/overview.py b/common/test/acceptance/pages/studio/overview.py index d3037ee2c6..0407692530 100644 --- a/common/test/acceptance/pages/studio/overview.py +++ b/common/test/acceptance/pages/studio/overview.py @@ -345,7 +345,7 @@ class CourseOutlinePage(CoursePage, CourseOutlineContainer): BOTTOM_ADD_SECTION_BUTTON = '.outline > .add-section .button-new' def is_browser_on_page(self): - return self.q(css='body.view-outline').present + return self.q(css='body.view-outline').present and self.q(css='div.ui-loading.is-hidden').present def view_live(self): """ diff --git a/common/test/acceptance/pages/studio/utils.py b/common/test/acceptance/pages/studio/utils.py index a37a39937a..b9e0c499ea 100644 --- a/common/test/acceptance/pages/studio/utils.py +++ b/common/test/acceptance/pages/studio/utils.py @@ -69,6 +69,7 @@ def add_discussion(page, menu_index=0): menu_index specifies which instance of the menus should be used (based on vertical placement within the page). """ + page.wait_for_component_menu() click_css(page, 'a>span.large-discussion-icon', menu_index) @@ -80,6 +81,7 @@ def add_advanced_component(page, menu_index, name): placement within the page). """ # Click on the Advanced icon. + page.wait_for_component_menu() click_css(page, 'a>span.large-advanced-icon', menu_index, require_notification=False) # This does an animation to hide the first level of buttons