Her film début was an uncredited part in The Man Behind the Mask (1936); she was first credited, as Polly Shepherd, in The Last Adventurers (1937), and she appeared in 64 films over the next 26 years. She had small parts in three early Powell and Pressburger films: The Spy in Black (1939), Contraband (1940) and A Canterbury Tale (1944), Holiday Camp (1947) and, towards the end of her career, appeared in Inn for Trouble (1960), Doctor in Love (1960), Raising the Wind (1961), What a Carve Up! (1961), Over the Odds (1961), We Joined the Navy (1962), On the Beat (1962), Nurse on Wheels (1963) and Hide and Seek (1964).
She is perhaps best remembered for her role as Edie Hornett opposite Peggy Mount in the comedy Sailor Beware! (1956). She played "Brother" Lil in the British television comedy series The Rag Trade (1961–1963), and also appeared in four Carry On films: Carry On Constable (1960), Carry On Regardless (1961), Carry On Cruising (1962) and Carry On Cabby (1963).
Cannon, whose first name sometimes appears incorrectly as "Esme", retired in 1964 after Hide and Seek.
She died in 1972 at the age of 66 and is buried at St Benoit-la-Forêt in France.
She was played by the Actress Marcia Warren in the 2011 TV play Hattie, a drama based on the career of Hattie Jacques. The play featured a number of scenes with the two actresses on the set of Carry On Cabby (her antepenultimate role) with Cannon characterized as being disenchanted with acting and proposing leaving show Business.
After early experience at Minnie Everett's School of Dancing in Sydney, Cannon began acting on the stage at the age of four. She appeared in productions for both the J. C. Williamson and Tait companies – including the early prominent role of Ruth Le Page in Sealed Orders at the Theatre Royal in 1914, and played Baby in an adaptation of Seven Little Australians the same year. She was given children's parts well into adulthood. In an interview with the Australian Women's Weekly published in 1963, she claimed it was the theatrical impresario Percy Hutchinson who told her if she visited London he would give her work; her first London role was in the play Misadventure. She worked not only as an actor in Britain in the 1930s but also in stage management and production.