From 956bf2f49225a989a0e4e5f43010c3e1bb9fac8e Mon Sep 17 00:00:00 2001 From: Nico Schedel Date: Wed, 30 Oct 2019 10:46:07 +0100 Subject: [PATCH] TT#68016 selenium: workaround for selenium crashing on select list elements selenium has this "nice" feature where it can crash sometimes on selection lists with error "cannot scroll element into view", even though element is visible on crash screenshots. use move_and_click() instad of click() to try more often to click on selection lists. Change-Id: I6625d6f426019d7774cafb8eb1c73e0d203c7649 --- t/selenium/controller_billing.t | 1 + t/selenium/controller_domain.t | 4 ++-- t/selenium/controller_emergency.t | 1 + t/selenium/controller_ncos.t | 2 +- t/selenium/controller_peering.t | 4 ++-- t/selenium/controller_profileset.t | 2 +- t/selenium/controller_rw_ruleset.t | 1 + t/selenium/controller_subscriber.t | 2 ++ 8 files changed, 11 insertions(+), 6 deletions(-) diff --git a/t/selenium/controller_billing.t b/t/selenium/controller_billing.t index ab80be4534..83d8e64047 100644 --- a/t/selenium/controller_billing.t +++ b/t/selenium/controller_billing.t @@ -155,6 +155,7 @@ ok($d->find_element_by_xpath('//*[@id="billing_fee_table"]//tr[1]/td[contains(te diag("Edit Billing Fee"); $d->move_and_click('//*[@id="billing_fee_table"]//tr[1]//td//a[contains(text(), "Edit")]', 'xpath', '//*[@id="billing_fee_table_filter"]/label/input'); +$d->move_and_click('//*[@id="direction"]', 'xpath', '//*[@id="mod_edit"]/div/h3[contains(text(), "Edit Billing Fee")]'); $d->find_element('//*[@id="direction"]/option[@value="in"]')->click(); $d->find_element('//*[@id="save"]')->click(); is($d->get_text_safe('//*[@id="content"]//div[contains(@class, "alert")]'), 'Billing fee successfully changed!', 'Correct Alert was shown'); diff --git a/t/selenium/controller_domain.t b/t/selenium/controller_domain.t index 4aec9401af..4564eec8a9 100644 --- a/t/selenium/controller_domain.t +++ b/t/selenium/controller_domain.t @@ -128,7 +128,7 @@ $d->move_and_click('//table//tr/td[contains(text(), "opus_mono_bitrate")]/../td/ ok($d->find_element_by_xpath('//*[@id="mod_edit"]/div/h3[contains(text(), "Edit Preference")]'), 'Edit window has been opened'); diag("Change to 32 kbit/s"); -$d->find_element('//*[@id="opus_mono_bitrate"]')->click(); +$d->move_and_click('//*[@id="opus_mono_bitrate"]', 'xpath', '//*[@id="mod_edit"]/div/h3[contains(text(), "Edit Preference")]'); $d->find_element('//*[@id="opus_mono_bitrate"]/option[contains(text(), "32")]')->click(); $d->find_element('//*[@id="save"]')->click(); @@ -155,7 +155,7 @@ $d->move_and_click('//table//tr/td[contains(text(), "opus_stereo_bitrate")]/../t ok($d->find_element_by_xpath('//*[@id="mod_edit"]/div/h3[contains(text(), "Edit Preference")]'), 'Edit window has been opened'); diag("Change to 32 kbit/s"); -$d->find_element('//*[@id="opus_stereo_bitrate"]')->click(); +$d->move_and_click('//*[@id="opus_stereo_bitrate"]', 'xpath', '//*[@id="mod_edit"]/div/h3[contains(text(), "Edit Preference")]'); $d->find_element('//*[@id="opus_stereo_bitrate"]/option[contains(text(), "32")]')->click(); $d->find_element('//*[@id="save"]')->click(); diff --git a/t/selenium/controller_emergency.t b/t/selenium/controller_emergency.t index 5cc1ebfca0..d86c2c3e72 100644 --- a/t/selenium/controller_emergency.t +++ b/t/selenium/controller_emergency.t @@ -137,6 +137,7 @@ diag("Edit setting 'emergency_mapping_container'"); $d->scroll_to_element($d->find_element('//table//tr//td[contains(text(), "emergency_mapping_container")]')); $d->move_and_click('//table//tr//td[contains(text(), "emergency_mapping_container")]/../td//a[contains(text(), "Edit")]', 'xpath', '//*[@id="preference_groups"]//div//a[contains(text(), "NAT and Media Flow Control")]'); ok($d->find_element_by_xpath('//*[@id="mod_edit"]/div/h3[contains(text(), "Edit Preference")]'), "Edit Window has been opened"); +$d->move_and_click('//*[@id="emergency_mapping_container"]', 'xpath', '//*[@id="mod_edit"]/div/h3[contains(text(), "Edit Preference")]'); $d->find_element('//*[@id="emergency_mapping_container"]/option[contains(text(), "' . $containername . '")]')->click(); $d->find_element('//*[@id="save"]')->click(); diff --git a/t/selenium/controller_ncos.t b/t/selenium/controller_ncos.t index cb5bf6d67f..b477cde8f4 100644 --- a/t/selenium/controller_ncos.t +++ b/t/selenium/controller_ncos.t @@ -208,7 +208,7 @@ $d->scroll_to_element($d->find_element('//*[@id="preference_groups"]//div//a[con diag("Edit setting 'NCOS'"); $d->move_and_click('//table//tr//td[contains(text(), "ncos")]/../td//a[contains(text(), "Edit")]', 'xpath', '//table//tr//td[contains(text(), "adm_cf_ncos")]/../td//a[contains(text(), "Edit")]'); ok($d->find_element_by_xpath('//*[@id="mod_edit"]/div/h3[contains(text(), "Edit Preference")]'), 'Edit Window has been opened'); -ok($d->find_element_by_xpath('//*[@id="ncos"]/option[contains(text(), "' . $ncosname . '")]'), 'Element was found'); +$d->move_and_click('//*[@id="ncos"]', 'xpath', '//*[@id="mod_edit"]/div/h3[contains(text(), "Edit Preference")]'); $d->find_element('//*[@id="ncos"]/option[contains(text(), "' . $ncosname . '")]')->click(); $d->find_element('//*[@id="save"]')->click(); diff --git a/t/selenium/controller_peering.t b/t/selenium/controller_peering.t index 2b4844c07a..3716440520 100644 --- a/t/selenium/controller_peering.t +++ b/t/selenium/controller_peering.t @@ -221,10 +221,10 @@ $d->scroll_to_element($d->find_element('Number Manipulations', 'link_text')); diag("Edit preference 'inbound_upn'"); $d->move_and_click('//table//td[contains(text(), "inbound_upn")]/..//td//a[contains(text(), "Edit")]', 'xpath', '//*[@id="preference_groups"]//div//a[contains(text(), "Number Manipulation")]'); -ok($d->find_element_by_xpath('//*[@id="mod_edit"]/div/h3[contains(text(), "Edit Preference")]'), 'Edit Window has been opened'); diag("Change to 'P-Asserted-Identity'"); -$d->find_element('//*[@id="inbound_upn"]')->click(); +ok($d->find_element_by_xpath('//*[@id="mod_edit"]/div/h3[contains(text(), "Edit Preference")]'), 'Edit Window has been opened'); +$d->move_and_click('//*[@id="inbound_upn"]', 'xpath', '//*[@id="mod_edit"]/div/h3[contains(text(), "Edit Preference")]'); $d->find_element('//*[@id="inbound_upn"]/option[@value="pai_user"]')->click(); $d->find_element('#save', 'css')->click(); diff --git a/t/selenium/controller_profileset.t b/t/selenium/controller_profileset.t index 617285b835..8229c5f27d 100644 --- a/t/selenium/controller_profileset.t +++ b/t/selenium/controller_profileset.t @@ -129,7 +129,7 @@ diag("Add NCOS to Profile"); $d->find_element('//*[@id="preference_groups"]//div//a[contains(text(), "Call Blockings")]')->click(); $d->move_and_click('//table//tr//td[contains(text(), "ncos")]//..//td//a[contains(text(), "Edit")]', 'xpath', '//*[@id="preference_groups"]//div//a[contains(text(), "Call Blockings")]'); ok($d->find_element_by_xpath('//*[@id="mod_edit"]/div/h3[contains(text(), "' . "Edit Preference 'NCOS Level'" . '")]'), 'Edit window has been opened'); -$d->find_element('//*[@id="ncos"]')->click(); +$d->move_and_click('//*[@id="ncos"]', 'xpath', '//*[@id="mod_edit"]/div/h3[contains(text(), "' . "Edit Preference 'NCOS Level'" . '")]'); $d->find_element('//*[@id="ncos"]//option[contains(text(), "'. $ncosname .'")]')->click(); $d->find_element('//*[@id="save"]')->click(); diff --git a/t/selenium/controller_rw_ruleset.t b/t/selenium/controller_rw_ruleset.t index f83c2831ea..221da3c933 100644 --- a/t/selenium/controller_rw_ruleset.t +++ b/t/selenium/controller_rw_ruleset.t @@ -218,6 +218,7 @@ $d->find_element('//*[@id="toggle-accordions"]')->click(); $d->scroll_to_element($d->find_element('Number Manipulations', 'link_text')); $d->move_and_click('//table/tbody/tr/td[contains(text(), "rewrite_rule_set")]/../td/div//a[contains(text(), "Edit")]', 'xpath', '//*[@id="preference_groups"]//div//a[contains(text(), "Number Manipulations")]'); ok($d->find_element_by_xpath('//*[@id="mod_edit"]/div/h3[contains(text(), "Edit Preference")]'), 'Edit Window has been opened'); +$d->move_and_click('//*[@id="rewrite_rule_set"]', 'xpath', '//*[@id="mod_edit"]/div/h3[contains(text(), "Edit Preference")]'); $d->find_element('//*[@id="rewrite_rule_set"]/option[contains(text(), "' . $rulesetname . '")]')->click(); $d->find_element('//*[@id="save"]')->click(); diff --git a/t/selenium/controller_subscriber.t b/t/selenium/controller_subscriber.t index 25cd50c230..2acff25321 100644 --- a/t/selenium/controller_subscriber.t +++ b/t/selenium/controller_subscriber.t @@ -219,6 +219,8 @@ $d->scroll_to_element($d->find_element('//table//tr/td[contains(text(), "languag $d->move_and_click('//table//tr/td[contains(text(), "language")]/..//td//a[contains(text(), "Edit")]', 'xpath', '//table//tr/td[contains(text(), "conference_pin")]/..//td//a[contains(text(), "Edit")]'); diag("Change Language to German"); +ok($d->find_element_by_xpath('//*[@id="mod_edit"]/div/h3[contains(text(), "Edit Preference")]'), 'Edit Window has been opened'); +$d->move_and_click('//*[@id="language"]', 'xpath', '//*[@id="mod_edit"]/div/h3[contains(text(), "Edit Preference")]'); $d->find_element('//*[@id="language"]/option[contains(text(), "German")]')->click(); $d->find_element('//*[@id="save"]')->click();