Lines 172-186
sub click {
Link Here
|
172 |
$self->click_when_visible( $xpath_selector ); |
172 |
$self->click_when_visible( $xpath_selector ); |
173 |
} |
173 |
} |
174 |
|
174 |
|
175 |
sub click_when_visible { |
175 |
sub wait_for_element_visible { |
176 |
my ( $self, $xpath_selector ) = @_; |
176 |
my ( $self, $xpath_selector ) = @_; |
|
|
177 |
|
177 |
$self->driver->set_implicit_wait_timeout(20000); |
178 |
$self->driver->set_implicit_wait_timeout(20000); |
178 |
my ($visible, $elt); |
179 |
my ($visible, $elt); |
|
|
180 |
$self->remove_error_handler; |
179 |
while ( not $visible ) { |
181 |
while ( not $visible ) { |
180 |
$elt = eval {$self->driver->find_element($xpath_selector) }; |
182 |
$elt = eval {$self->driver->find_element($xpath_selector) }; |
181 |
$visible = $elt && $elt->is_displayed; |
183 |
$visible = $elt && $elt->is_displayed; |
182 |
$self->driver->pause(1000) unless $visible; |
184 |
$self->driver->pause(1000) unless $visible; |
183 |
} |
185 |
} |
|
|
186 |
$self->add_error_handler; |
187 |
return $elt; |
188 |
} |
189 |
|
190 |
sub show_all_entries { |
191 |
my ( $self, $xpath_selector ) = @_; |
192 |
|
193 |
$self->driver->find_element( $xpath_selector |
194 |
. '//div[@class="dataTables_length"]/label/select/option[@value="-1"]' |
195 |
)->click; |
196 |
my ($all_displayed); |
197 |
while ( not $all_displayed ) { |
198 |
my $dt_infos = $self->driver->get_text( |
199 |
$xpath_selector . '//div[@class="dataTables_info"]' ); |
200 |
|
201 |
if ( $dt_infos =~ m|Showing 1 to (\d+) of (\d+) entries| ) { |
202 |
$all_displayed = 1 if $1 == $2; |
203 |
} |
204 |
|
205 |
$self->driver->pause(1000) unless $all_displayed; |
206 |
} |
207 |
} |
208 |
|
209 |
sub click_when_visible { |
210 |
my ( $self, $xpath_selector ) = @_; |
211 |
|
212 |
my $elt = $self->wait_for_element_visible( $xpath_selector ); |
184 |
|
213 |
|
185 |
my $clicked; |
214 |
my $clicked; |
186 |
$self->remove_error_handler; |
215 |
$self->remove_error_handler; |
187 |
- |
|
|