diff --git a/t/lib/Selenium/Remote/Driver/FirefoxExtensions.pm b/t/lib/Selenium/Remote/Driver/FirefoxExtensions.pm index 6cdfe9cc3a..20277345ff 100644 --- a/t/lib/Selenium/Remote/Driver/FirefoxExtensions.pm +++ b/t/lib/Selenium/Remote/Driver/FirefoxExtensions.pm @@ -2,7 +2,7 @@ package Selenium::Remote::Driver::FirefoxExtensions; use warnings; use strict; - +use TryCatch; use Moo; use Test::More import => [qw(diag ok is)]; @@ -108,4 +108,19 @@ sub browser_name_in { return scalar grep {/^$browser_name$/} @names; } +sub wait_for_text { + my ($self, $xpath, $expected, $timeout) = @_; + return unless $xpath && $expected; + $timeout = 5 unless $timeout; # seconds. Default timeout value if none is specified. + my $started = time(); + my $elapsed = time(); + while ($elapsed - $started <= $timeout){ + $elapsed = time(); + try{ + return 1 if $self->find_element($xpath)->get_text() eq $expected; + }; + } + return; +} + 1;