A woman on holiday in South Africa fought off assailants who attempted to kidnap her as she waited for an Uber.