Hi, There are still some issues with this I'm afraid: 672 + """Items that can be selected in the quicklist""" Needs a full-stop at the end of the docstring. 727 + def mouse_click(self, button=1): 728 + logger.debug("Clicking on quicklist item %r", self) 729 + self.mouse_move_to() 730 + sleep(.25) 731 + assert(self.visible) 732 + self._mouse.click(press_duration=.1) 733 + sleep(.25) Several issues here: 1) The assert should be at the start of this method, not half way through. 2) You don't need the sleep() statements, please remove them. 3) You don't need to specify the click duration. Please just use "mouse.click()". 66 + for icon in self.launcher.model.get_launcher_icons(): 867 + if (icon.tooltip_text != self.ql_app.name): 868 + self.ql_launcher.key_nav_next() 869 + else: 870 + self.keybinding("launcher/keynav/open-quicklist") 871 + self.addCleanup(self.keybinding, "launcher/keynav/close-quicklist") 872 + break Instead of iterating over the model icons, please use the method on the launcher model, like this: icon = self.launcher.model.get_icon_by_desktop_id(...) If you use the desktop Id then we won't have issues in didfferent locales. 885 + self.assertThat(self.quicklist.selected_item.id, Equals(expected_item.id)) 899 + self.assertThat(self.quicklist.selected_item.id, Equals(expected_item.id)) 908 + self.assertThat(self.quicklist.selected_item.id, Equals(expected_item.id)) 917 + self.assertThat(self.quicklist.selected_item.id, Equals(expected_item.id)) 931 + self.assertThat(self.quicklist.selected_item.id, Equals(expected_item.id)) 940 + self.assertThat(self.quicklist.selected_item.id, Equals(expected_item.id)) 949 + self.assertThat(self.quicklist.selected_item.id, Equals(expected_item.id)) 958 + self.assertTrue(item.selected) 959 + self.assertThat(self.quicklist.selected_item.id, Equals(item.id)) 979 + self.assertTrue(mouse_item.selected) 984 + self.assertTrue(expected_item.selected) 985 + self.assertThat(self.quicklist.selected_item.id, Equals(expected_item.id)) 995 + self.assertTrue(mouse_item.selected) 1000 + self.assertTrue(expected_item.selected) 1001 + self.assertThat(self.quicklist.selected_item.id, Equals(expected_item.id)) 1010 + self.assertTrue(mouse_item.selected) 1017 + self.assertTrue(key_item.selected) 1018 + self.assertThat(self.quicklist.selected_item.id, Equals(key_item.id)) 1023 + self.assertThat(self.quicklist.selected_item.id, Equals(key_item.id)) 1027 + self.assertThat(self.quicklist.selected_item.id, Equals(key_item.id)) 1032 + self.assertTrue(mouse_item.selected) 1033 + self.assertThat(self.quicklist.selected_item.id, Equals(mouse_item.id)) Please use the new Eventually() matcher for all of these. To import it: from autopilot.matchers import Eventually to use it, take this: self.assertThat(self.quicklist.selected_item.id, Equals(mouse_item.id)) and turn it into this: self.assertThat(self.quicklist.selected_item.id, Eventually(Equals(mouse_item.id))) Eventually takes any mater, so you can also do things like this: self.assertThat(self.quicklist.selected_item.id, Eventually(LessThan(mouse_item.id))) Finally, please remove the sleep() statements. Using the Eventually(...) matcher removes the need for random sleep statements in your tests. Thanks