Bug 27055: Fix compatibility with newer Firefox+Selenium version
authorVictor Grousset/tuxayo <victor@tuxayo.net>
Thu, 19 Nov 2020 12:47:45 +0000 (13:47 +0100)
committerTomas Cohen Arazi <tomascohen@theke.io>
Wed, 30 Dec 2020 15:04:49 +0000 (12:04 -0300)
commit3c3406257e78a9407320d22820807f767b4c4df3
tree41e4ef0002346272932aa32184e94c70d8ca91ba
parent084d64b84a536c1d88f2fa477865134f97388489
Bug 27055: Fix compatibility with newer Firefox+Selenium version

Fix "submit is not a function error"
A submit button should not be named "submit", in this case, it's id.
https://stackoverflow.com/questions/833032/submit-is-not-a-function-error-in-javascript

Fix some uses of get_attribute()

Fix a fail by setting a global implicit_wait_timeout, default value is 0
in our lib. Other libs set it higher which helps to not have to manually
deal with part of the timing issues.

Fix: remove usage of click_when_visible() because it doesn't work with
elements not in the top of the page. Because they are off screen.

Fix: use $driver->quit() in error_handler to not forget an open Firefox.
With the current version, it fills /dev/shm and fails with around 5
Firefox opened.
Also use quit() it at the end of every script.

Fix: filling item fields, to fill only the displayed one (not those
with display:none)

== Test plan ==
1. Update selenium/standalone-firefox to the latest version [1]
2. prove t/db_dependent/selenium/authentication.t
3. It fails with: arguments[0].form.submit is not a function
4. Apply patch
5. Retest
6. Success

[1] In koha-testing-docker you can do it with
docker-compose.yml:
     selenium:
-        image: selenium/standalone-firefox:2.53.1-americium
+        image: selenium/standalone-firefox

Signed-off-by: Mason James <mtj@kohaaloha.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
koha-tmpl/intranet-tmpl/prog/css/login.css
koha-tmpl/intranet-tmpl/prog/en/modules/auth.tt
t/db_dependent/selenium/basic_workflow.t
t/db_dependent/selenium/patrons_search.t
t/db_dependent/selenium/regressions.t
t/db_dependent/selenium/update_child_to_adult.t
t/lib/Selenium.pm