From 625370eb8ca21e04ddd0951e83da709d4b935cda Mon Sep 17 00:00:00 2001 From: Yves Lavoie Date: Mon, 17 Jul 2017 13:51:04 -0400 Subject: [PATCH 1/2] Restrict finds to displayed --- lib/Weasel/Driver/Selenium2.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/Weasel/Driver/Selenium2.pm b/lib/Weasel/Driver/Selenium2.pm index 1777ca7..3e1d82b 100644 --- a/lib/Weasel/Driver/Selenium2.pm +++ b/lib/Weasel/Driver/Selenium2.pm @@ -183,6 +183,7 @@ sub find_all { @rv = $_driver->find_child_elements($parent_id, $locator, $scheme // 'xpath'); } + @rv = grep { $_->is_displayed } @rv; return wantarray ? @rv : \@rv; } @@ -467,4 +468,3 @@ Licensed under the same terms as Perl. =cut 1; - From 928d887dfbb02b9cd7ff46b2220752947facb40a Mon Sep 17 00:00:00 2001 From: Yves Lavoie Date: Mon, 17 Jul 2017 14:38:11 -0400 Subject: [PATCH 2/2] Provide new entry to find all displayed only elements --- lib/Weasel/Driver/Selenium2.pm | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/lib/Weasel/Driver/Selenium2.pm b/lib/Weasel/Driver/Selenium2.pm index 3e1d82b..a3cb691 100644 --- a/lib/Weasel/Driver/Selenium2.pm +++ b/lib/Weasel/Driver/Selenium2.pm @@ -164,6 +164,17 @@ sub stop { $self->started(0); } +=item find_all_displayed + +=cut + +sub find_all_displayed { + my $self = shift @_; + my @rv = $self->find_all(@_); + @rv = grep { $_->is_displayed } @rv; + return wantarray ? @rv : \@rv; +} + =item find_all =cut @@ -183,7 +194,6 @@ sub find_all { @rv = $_driver->find_child_elements($parent_id, $locator, $scheme // 'xpath'); } - @rv = grep { $_->is_displayed } @rv; return wantarray ? @rv : \@rv; }