Acting Senior Sergeant Bruce Bowers said police were at the station for another matter when they were alerted to the bus incident about 11.10am on Tuesday.
Officers allege the 34-year-old man initially tried to steal money from the driver who resisted.
The man allegedly struggled with the Transperth employee before spitting at him and taking cash.
Sen-Sgt Bowers said police detained the suspect after a short foot chase.
“It was good police were in the area at the time and able to defuse the situation quickly,” he said.
Officers charged the man with aggravated robbery.