Esempio n. 1
0
 def delete(self, source_index):
     """
     Delete the item with index source_index (based on vertical placement in page).
     """
     click_css(self, 'a.delete-button', source_index, require_notification=False)
     # Click the confirmation dialog button
     click_css(self, 'a.button.action-primary', 0)
Esempio n. 2
0
 def discard_changes(self):
     """
     Discards draft changes (which will then re-render the page).
     """
     click_css(self, 'a.action-discard', 0, require_notification=False)
     confirm_prompt(self)
     self.wait_for_ajax()
Esempio n. 3
0
 def discard_changes(self):
     """
     Discards draft changes (which will then re-render the page).
     """
     click_css(self, 'a.action-discard', 0, require_notification=False)
     confirm_prompt(self)
     self.wait_for_ajax()
 def set_select_value_and_save(self, label, value):
     """
     Sets the select with given label (display name) to the specified value, and presses Save.
     """
     elem = self.get_setting_element(label)
     select = Select(elem)
     select.select_by_value(value)
     click_css(self, 'a.action-save')
Esempio n. 5
0
    def add_discussion(self, menu_index):
        """
        Add a new instance of the discussion category.

        menu_index specifies which instance of the menus should be used (based on vertical
        placement within the page).
        """
        click_css(self, 'a>span.large-discussion-icon', menu_index)
 def set_content_and_save(self, content):
     """
     Types content into the html component.
     """
     self.q(css='.edit-xblock-modal .editor-modes .editor-button').click()
     editor = self.q(css=self._bounded_selector('.html-editor .mce-edit-area'))[0]
     ActionChains(self.browser).click(editor).\
         send_keys([Keys.CONTROL, 'a']).key_up(Keys.CONTROL).send_keys(content).perform()
     click_css(self, 'a.action-save')
 def set_content_and_save(self, content):
     """
     Types content into the html component.
     """
     self.q(css='.edit-xblock-modal .editor-modes .editor-button').click()
     editor = self.q(
         css=self._bounded_selector('.html-editor .mce-edit-area'))[0]
     ActionChains(self.browser).click(editor).\
         send_keys([Keys.CONTROL, 'a']).key_up(Keys.CONTROL).send_keys(content).perform()
     click_css(self, 'a.action-save')
Esempio n. 8
0
 def delete(self, source_index):
     """
     Delete the item with index source_index (based on vertical placement in page).
     Only visible items are counted in the source_index.
     The index of the first item is 0.
     """
     # Click the delete button
     click_css(self, 'a.delete-button', source_index, require_notification=False)
     # Click the confirmation dialog button
     confirm_prompt(self)
Esempio n. 9
0
 def delete(self, source_index):
     """
     Delete the item with index source_index (based on vertical placement in page).
     Only visible items are counted in the source_index.
     The index of the first item is 0.
     """
     # Click the delete button
     click_css(self, 'a.delete-button', source_index, require_notification=False)
     # Click the confirmation dialog button
     confirm_prompt(self)
Esempio n. 10
0
 def set_field_value_and_save(self, label, value):
     """
     Sets the text field with given label (display name) to the specified value, and presses Save.
     """
     elem = self.get_setting_element(label)
     # Click in the field, delete the value there.
     action = ActionChains(self.browser).click(elem)
     for _x in range(0, len(elem.get_attribute('value'))):
         action = action.send_keys(Keys.BACKSPACE)
     # Send the new text, then Tab to move to the next field (so change event is triggered).
     action.send_keys(value).send_keys(Keys.TAB).perform()
     click_css(self, 'a.action-save')
Esempio n. 11
0
 def set_field_value_and_save(self, label, value):
     """
     Set the field with given label (display name) to the specified value, and presses Save.
     """
     index = self.get_setting_entry_index(label)
     elem = self.q(css=self._bounded_selector('.metadata_edit div.wrapper-comp-setting input.setting-input'))[index]
     # Click in the field, delete the value there.
     action = ActionChains(self.browser).click(elem)
     for _x in range(0, len(elem.get_attribute('value'))):
         action = action.send_keys(Keys.BACKSPACE)
     # Send the new text, then Tab to move to the next field (so change event is triggered).
     action.send_keys(value).send_keys(Keys.TAB).perform()
     click_css(self, 'a.action-save')
Esempio n. 12
0
    def toggle_staff_lock(self):
        """
        Toggles "hide from students" which enables or disables a staff-only lock.

        Returns True if the lock is now enabled, else False.
        """
        was_locked_initially = self.is_staff_locked
        if not was_locked_initially:
            self.q(css='a.action-staff-lock').first.click()
        else:
            click_css(self, 'a.action-staff-lock', 0, require_notification=False)
            confirm_prompt(self)
        self.wait_for_ajax()
        return not was_locked_initially
Esempio n. 13
0
    def toggle_staff_lock(self, inherits_staff_lock=False):
        """
        Toggles "hide from students" which enables or disables a staff-only lock.

        Returns True if the lock is now enabled, else False.
        """
        was_locked_initially = self.is_staff_locked
        if not was_locked_initially:
            self.q(css='a.action-staff-lock').first.click()
        else:
            click_css(self, 'a.action-staff-lock', 0, require_notification=False)
            if not inherits_staff_lock:
                confirm_prompt(self)
        self.wait_for_ajax()
        return not was_locked_initially
Esempio n. 14
0
 def set_field_value_and_save(self, label, value):
     """
     Set the field with given label (display name) to the specified value, and presses Save.
     """
     index = self.get_setting_entry_index(label)
     elem = self.q(css=self._bounded_selector(
         '.metadata_edit div.wrapper-comp-setting input.setting-input')
                   )[index]
     # Click in the field, delete the value there.
     action = ActionChains(self.browser).click(elem)
     for _x in range(0, len(elem.get_attribute('value'))):
         action = action.send_keys(Keys.BACKSPACE)
     # Send the new text, then Tab to move to the next field (so change event is triggered).
     action.send_keys(value).send_keys(Keys.TAB).perform()
     click_css(self, 'a.action-save')
Esempio n. 15
0
    def delete(self, source_index):
        """
        Delete the item with index source_index (based on vertical placement in page).
        Only visible items are counted in the source_index.
        The index of the first item is 0.
        """
        # Click the delete button
        click_css(self, 'a.delete-button', source_index, require_notification=False)

        # Wait for the warning prompt to appear
        self.wait_for_element_visibility('#prompt-warning', 'Deletion warning prompt is visible')

        # Make sure the delete button is there
        confirmation_button_css = '#prompt-warning a.button.action-primary'
        self.wait_for_element_visibility(confirmation_button_css, 'Confirmation dialog button is visible')

        # Click the confirmation dialog button
        click_css(self, confirmation_button_css, 0)
Esempio n. 16
0
 def cancel(self):
     """
     Clicks cancel button.
     """
     click_css(self, 'a.action-cancel', require_notification=False)
Esempio n. 17
0
 def save(self):
     """
     Clicks save button.
     """
     click_css(self, 'a.action-save')
Esempio n. 18
0
 def add_missing_groups(self):
     """
     Click the "add missing groups" link.
     """
     click_css(self, '.add-missing-groups-button')
Esempio n. 19
0
 def duplicate(self, source_index):
     """
     Duplicate the item with index source_index (based on vertical placement in page).
     """
     click_css(self, 'a.duplicate-button', source_index)
Esempio n. 20
0
 def cancel(self):
     """
     Clicks cancel button.
     """
     click_css(self, 'a.action-cancel', require_notification=False)
Esempio n. 21
0
 def click_export_button(self):
     """
     Clicks export button.
     """
     click_css(self, "a.action-export")
Esempio n. 22
0
 def add_missing_groups(self):
     """
     Click the "add missing groups" link.
     """
     click_css(self, '.add-missing-groups-button')
Esempio n. 23
0
 def save(self):
     """
     Clicks save button.
     """
     click_css(self, 'a.action-save')
Esempio n. 24
0
 def duplicate(self, source_index):
     """
     Duplicate the item with index source_index (based on vertical placement in page).
     """
     click_css(self, 'a.duplicate-button', source_index)