From 4e8b09a2979959ebfcccc3ced0cacd40d8b4a675 Mon Sep 17 00:00:00 2001 From: Nico Schedel Date: Thu, 7 Nov 2019 10:08:29 +0100 Subject: [PATCH] TT#68016 selenium: dont crash script if select_if_unselected cant find elem FirefoxExtensions.pm: - prevent crashing the script when select_if_unselected() and unselect_if_selected() cannot find specified element Change-Id: I55c1f41f57c77be27020edafd44be474830dc9d1 (cherry picked from commit 24408a15d47fb75e12f8f6127c5001b6ee36966f) --- .../Remote/Driver/FirefoxExtensions.pm | 30 ++++++++++--------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/t/lib/Selenium/Remote/Driver/FirefoxExtensions.pm b/t/lib/Selenium/Remote/Driver/FirefoxExtensions.pm index 5bfe68c5d9..2dc01b9e4b 100644 --- a/t/lib/Selenium/Remote/Driver/FirefoxExtensions.pm +++ b/t/lib/Selenium/Remote/Driver/FirefoxExtensions.pm @@ -49,25 +49,27 @@ sub find_text { sub select_if_unselected { my ($self, $query, $scheme) = @_; $scheme //= "xpath"; - my $elem = $self->find_element($query, $scheme); - return 0 unless $elem; - return 0 unless $elem->is_displayed; - if (! $elem->is_selected() ) { - $elem->click; - } - return 1; + try { + my $elem = $self->find_element($query, $scheme); + if (! $elem->is_selected() ) { + $elem->click; + } + return 1; + }; + return 0; } sub unselect_if_selected { my ($self, $query, $scheme) = @_; $scheme //= "xpath"; - my $elem = $self->find_element($query, $scheme); - return 0 unless $elem; - return 0 unless $elem->is_displayed; - if ($elem->is_selected() ) { - $elem->click; - } - return 1; + try { + my $elem = $self->find_element($query, $scheme); + if ($elem->is_selected() ) { + $elem->click; + } + return 1; + }; + return 0; } sub fill_element {