|
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 |
- |
|
|