Computer vision, together with bayesian estimation algorithms, sensors and actuators are used in robotics to solve a variety of critical tasks such as localization, obstacle avoidance, and navigation. Visual servoing uses computer vision algorithms to guide robot movements. Classical approaches in visual servoing systems relied on extracting features from images to control robot movements. Now, state of the art computer vision systems use deep neural networks for object recognition, detection, segmentation, and tracking. These networks and specialized controllers play a predominant role in the design and implementation of modern visual servoing systems due to their accuracy, flexibility, and adaptability. Recent research in direct systems for visual servoing has created robotic systems that rely only on the information extracted from images. Furthermore, end-to-end systems eliminate entirely the controller by learning the control laws during training.This paper presents a comprehensive survey on the state of the art in visual servoing systems, discussing the latest classical methods not included in other surveys but emphasizing the new approaches based on deep neural networks and their applications within robotics.