]> git.koha-community.org Git - koha.git/commit
Bug 29458: Fix selenium test
authorJonathan Druart <jonathan.druart@bugs.koha-community.org>
Mon, 31 Jan 2022 15:39:59 +0000 (16:39 +0100)
committerArthur Suzuki <arthur.suzuki@biblibre.com>
Fri, 13 Jan 2023 16:45:46 +0000 (17:45 +0100)
commit527b2b634f72b8f8025fc58b404b5022dc3eb3e9
treede8cc78e886dc4a2fad99822c8390914c3e50355
parent7c0a1a25e30f215deb8d75945ad6bbef93829f05
Bug 29458: Fix selenium test

The authentication.t selenium tests (and a couple of others) were
failing with:
Error while executing command: element not interactable: Element <input class="btn btn-primary" type="submit"> could not be scrolled into view at /usr/local/share/perl/5.32.1/Selenium/Remote/Driver.pm line 411. at /usr/local/share/perl/5.32.1/Selenium/Remote/Driver.pm line 356.

We changed the other of the form, and t::lib::Selenium::submit_form was
not getting the correct (first) form. The one from the auth modal was
retrieved and submit button was clicked. Selenium raised an error as it
is not displayed.
The ->is_displayed selenium method does not work, as per the doc
"""
Note: This does *not* tell you an element's 'visibility' property; as it still takes up space in the DOM and is therefore considered 'displayed'.
"""
https://metacpan.org/pod/Selenium::Remote::WebElement#is_displayed

"The internet" is saying we should be able to use the following in our
xpath expression: not(ancestor::div[contains(@style,'display:none')]
but it actually only works if the display:none rule is defined on the
node (not from .css). Which does not work for us.

The only solution I found is to check for the size of the element, which
is (0,0) if not effectively displayed.

Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
(cherry picked from commit 5520b8fb84f26419c6ec9f73a14cdf14f036afce)
Signed-off-by: Arthur Suzuki <arthur.suzuki@biblibre.com>
t/lib/Selenium.pm