def uninstall_plugins(plugin_name): common.open_url('provd_plugin') # uninstalling more than 1 plugins can't done in one step or selenium will raise a StaleElementReferenceException plugin_names = [] for plugin_line in common.find_lines(plugin_name): plugin_names.append(plugin_line.find_element_by_xpath('.//td[2]').text) for plugin_name in plugin_names: plugin_line = common.get_line(plugin_name) _uninstall_plugin(plugin_line)
def _get_latest_plugin_line_and_name(plugin_prefix): common.open_url('provd_plugin') plugin_lines = common.find_lines(plugin_prefix) chosen = None chosen_name = '' for candidate in plugin_lines: candidate_name = candidate.find_element_by_xpath('.//td[2]').text if 'switchboard' in candidate_name: # exclude switchboard plugins, which are a special case continue if candidate_name > chosen_name: chosen = candidate chosen_name = candidate_name if not chosen: raise AssertionError('no plugin with name %s' % plugin_prefix) return chosen, chosen_name