sub selector_to_xpath { my $selector = shift; my $xpath = ''; foreach my $token ( split(/\s/, $selector) ) { if ( $token =~ /(\w+)? (?: \#(\w+) | \.(\w+) )?/x ) { $xpath .= '//'; my ( $tag, $id, $class ) = ( $1, $2, $3 ); if ( $tag ) { $xpath .= $tag; } if ( $id ) { $xpath .= "*" unless $tag; $xpath .= "[\@id='$id']"; } if ( $class ) { $xpath .= "*" unless $tag; $xpath .= "[\@class='$class']"; } } } return $xpath; }