From c4f31d182435e0ba27a32076fc8907f7cce23f45 Mon Sep 17 00:00:00 2001 From: Nico Schedel Date: Thu, 18 Apr 2019 09:48:51 +0200 Subject: [PATCH] TT#56376 selenium: backport wait_for_text() from master FirefoxExtensions.pm: - Added wait_for_text() from master. It will be very essential for future fixes. Change-Id: I7ead60d14a8ffa2146ea3c352679e70bacadeb63 --- .../Selenium/Remote/Driver/FirefoxExtensions.pm | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) 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;