diff --git a/tests/_graphical_wait_login.pm b/tests/_graphical_wait_login.pm index af85726a..960044bf 100644 --- a/tests/_graphical_wait_login.pm +++ b/tests/_graphical_wait_login.pm @@ -29,22 +29,19 @@ sub run { # is set in which case it will have been done already if (get_var("DESKTOP") eq 'gnome' && !get_var("START_AFTER_TEST")) { assert_screen "next_button", 60; - # sleep a bit to let things calm down; we can't wait still - # screen because g-i-s constantly changes and we can't wait - # idle because packagekit might be doin' stuff... - sleep 5; - assert_and_click "next_button", 10; - for my $n (1..2) { - # click 'Next' twice, moving the mouse to avoid - # highlight problems, sleeping to give it time to get - # to the next screen between clicks - wait_still_screen; + # this wizard is kind of annoying, sometimes clicks just + # don't work. wait_still_screen and wait_screen_change + # don't help much either. let's use a loop and just click + # until we reach 'skip_button'. if we go through the loop + # 20 times, give up. + for my $n (1..20) { mouse_set(100, 100); assert_and_click "next_button"; + last if (check_screen "skip_button", 5); } # click 'Skip' one time mouse_set(100,100); - wait_screen_change { assert_and_click "skip_button"; }; + wait_screen_change { assert_and_click "skip_button", 5; }; send_key "ret"; # wait for the stupid 'help' screen to show and kill it assert_screen "getting_started";