designed based on selenium api