From d440e209e13301ce231336e9384cb8a9750c818c Mon Sep 17 00:00:00 2001 From: raeeschachar Date: Tue, 19 Jan 2016 19:25:41 +0500 Subject: [PATCH] Fixed test course rerun failing on Chrome --- .../test/acceptance/pages/studio/course_rerun.py | 2 ++ common/test/acceptance/pages/studio/index.py | 15 +++++++++++---- .../acceptance/tests/studio/test_studio_rerun.py | 3 ++- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/common/test/acceptance/pages/studio/course_rerun.py b/common/test/acceptance/pages/studio/course_rerun.py index abd4ee9e78..9675b79326 100644 --- a/common/test/acceptance/pages/studio/course_rerun.py +++ b/common/test/acceptance/pages/studio/course_rerun.py @@ -39,3 +39,5 @@ class CourseRerunPage(CoursePage): Clicks the create rerun button. """ self.q(css='.rerun-course-save')[0].click() + # Clicking on the course will trigger an ajax event + self.wait_for_ajax() diff --git a/common/test/acceptance/pages/studio/index.py b/common/test/acceptance/pages/studio/index.py index d38172a731..3d2a3fdf9f 100644 --- a/common/test/acceptance/pages/studio/index.py +++ b/common/test/acceptance/pages/studio/index.py @@ -4,6 +4,7 @@ Studio Home page from bok_choy.page_object import PageObject from . import BASE_URL +from selenium.webdriver import ActionChains class DashboardPage(PageObject): @@ -28,18 +29,24 @@ class DashboardPage(PageObject): def has_processing_courses(self): return self.q(css='.courses-processing').present - def create_rerun(self, display_name): + def create_rerun(self, course_key): """ - Clicks the create rerun link of the course specified by display_name. + Clicks the create rerun link of the course specified by course_key + 'Re-run course' link doesn't show up until you mouse over that course in the course listing """ - name = self.q(css='.course-title').filter(lambda el: el.text == display_name)[0] - name.find_elements_by_xpath('../..')[0].find_elements_by_class_name('rerun-button')[0].click() + actions = ActionChains(self.browser) + button_name = self.browser.find_element_by_css_selector('.rerun-button[href$="' + course_key + '"]') + actions.move_to_element(button_name) + actions.click(button_name) + actions.perform() def click_course_run(self, run): """ Clicks on the course with run given by run. """ self.q(css='.course-run .value').filter(lambda el: el.text == run)[0].click() + # Clicking on course with run will trigger an ajax event + self.wait_for_ajax() def has_new_library_button(self): """ diff --git a/common/test/acceptance/tests/studio/test_studio_rerun.py b/common/test/acceptance/tests/studio/test_studio_rerun.py index 21a003bd68..858b056ec6 100644 --- a/common/test/acceptance/tests/studio/test_studio_rerun.py +++ b/common/test/acceptance/tests/studio/test_studio_rerun.py @@ -67,9 +67,10 @@ class CourseRerunTest(StudioCourseTest): Then I see one html component with the content 'Test Content' """ course_info = (self.course_info['org'], self.course_info['number'], self.course_info['run']) + updated_course_info = course_info[0] + "+" + course_info[1] + "+" + course_info[2] self.dashboard_page.visit() - self.dashboard_page.create_rerun(self.course_info['display_name']) + self.dashboard_page.create_rerun(updated_course_info) rerun_page = CourseRerunPage(self.browser, *course_info) rerun_page.wait_for_page()