View | Details | Raw Unified | Return to bug 26162
Collapse All | Expand All

(-)a/t/db_dependent/selenium/administration_tasks.t (-3 / +3 lines)
Lines 127-133 SKIP: { Link Here
127
        $s->submit_form;
127
        $s->submit_form;
128
128
129
        # Select "Show all" in the datatable "Show x entries" dropdown list to make sure our library is not hidden
129
        # Select "Show all" in the datatable "Show x entries" dropdown list to make sure our library is not hidden
130
        $driver->find_element('//select[@name="libraries_length"]/option[@value="-1"]')->click;
130
        $s->show_all_entries('//div[@id="libraries_wrapper"]');
131
        $s->click(
131
        $s->click(
132
            {
132
            {
133
                href => '/admin/branches.pl?op=add_form&branchcode=' . $branchcode,
133
                href => '/admin/branches.pl?op=add_form&branchcode=' . $branchcode,
Lines 138-144 SKIP: { Link Here
138
        $s->submit_form;
138
        $s->submit_form;
139
139
140
        # Select "Show all" in the datatable "Show x entries" dropdown list to make sure our library is not hidden
140
        # Select "Show all" in the datatable "Show x entries" dropdown list to make sure our library is not hidden
141
        $driver->find_element('//select[@name="libraries_length"]/option[@value="-1"]')->click;
141
        $s->show_all_entries('//div[@id="libraries_wrapper"]');
142
        $s->click(
142
        $s->click(
143
            {
143
            {
144
                id => 'delete_library_'.$branchcode,
144
                id => 'delete_library_'.$branchcode,
Lines 193-199 SKIP: { Link Here
193
        $s->submit_form;
193
        $s->submit_form;
194
194
195
        # Select "Show all" in the datatable "Show x entries" dropdown list to make sure our category is not hidden
195
        # Select "Show all" in the datatable "Show x entries" dropdown list to make sure our category is not hidden
196
        $driver->find_element('//select[@name="patron_categories_length"]/option[@value="-1"]')->click;
196
        $s->show_all_entries('//div[@id="patron_categories_wrapper"]');
197
197
198
        $s->click(
198
        $s->click(
199
            {
199
            {
(-)a/t/lib/Selenium.pm (-2 / +30 lines)
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
- 

Return to bug 26162