@@ -729,18 +729,47 @@ def test_autocomplete_shelf_filter(self):
729729 ),
730730 self .web_driver .page_source ,
731731 )
732- self .web_driver .find_element (By .CSS_SELECTOR , filter_css_selector ).click ()
733- self .web_driver .find_element (By .CSS_SELECTOR , '.select2-container--open' )
734- WebDriverWait (self .web_driver , 10 ).until (
735- EC .presence_of_element_located (
736- (By .XPATH , f'//*[contains(text(), "{ horror_shelf .name } ")]' )
732+ try :
733+ WebDriverWait (self .web_driver , 2 ).until (
734+ EC .presence_of_element_located ((By .CSS_SELECTOR , filter_css_selector ))
737735 )
738- )
736+ except TimeoutException :
737+ self .fail (f'{ filter_css_selector } not available as expected' )
738+ else :
739+ self .web_driver .find_element (By .CSS_SELECTOR , filter_css_selector ).click ()
740+ try :
741+ WebDriverWait (self .web_driver , 2 ).until (
742+ EC .presence_of_element_located (
743+ (By .CSS_SELECTOR , '.select2-container--open' )
744+ )
745+ )
746+ except TimeoutException :
747+ self .fail ('select2 widget did not open as expected' )
748+ try :
749+ WebDriverWait (self .web_driver , 2 ).until (
750+ EC .presence_of_element_located (
751+ (By .XPATH , f'//*[contains(text(), "{ horror_shelf .name } ")]' )
752+ )
753+ )
754+ except TimeoutException :
755+ self .fail (f'"{ horror_shelf .name } " not found' )
739756 self .assertIn (horror_shelf .name , self .web_driver .page_source )
740757 self .assertIn (factual_shelf .name , self .web_driver .page_source )
741- self .web_driver .find_element (By .XPATH , filter_option_xpath ).click ()
758+ try :
759+ WebDriverWait (self .web_driver , 2 ).until (
760+ EC .presence_of_element_located ((By .XPATH , filter_option_xpath ))
761+ )
762+ except TimeoutException :
763+ self .fail (f'"{ filter_option_xpath } " not found' )
764+ else :
765+ self .web_driver .find_element (By .XPATH , filter_option_xpath ).click ()
742766 self .assertIn (str (factual_shelf .id ), self .web_driver .current_url )
743- self .web_driver .find_element (By .CSS_SELECTOR , filter_css_selector )
767+ try :
768+ WebDriverWait (self .web_driver , 2 ).until (
769+ EC .presence_of_element_located ((By .CSS_SELECTOR , filter_css_selector ))
770+ )
771+ except TimeoutException :
772+ self .fail (f'"{ filter_css_selector } " not found' )
744773 self .assertNotIn (horror_shelf .name , self .web_driver .page_source )
745774 self .assertIn (factual_shelf .name , self .web_driver .page_source )
746775 with self .assertRaises (NoSuchElementException ):
@@ -776,11 +805,32 @@ def test_autocomplete_owner_filter(self):
776805 ),
777806 self .web_driver .page_source ,
778807 )
779- self .web_driver .find_element (By .CSS_SELECTOR , filter_css_selector ).click ()
780- self .web_driver .find_element (By .CSS_SELECTOR , '.select2-container--open' )
808+ try :
809+ WebDriverWait (self .web_driver , 2 ).until (
810+ EC .presence_of_element_located ((By .CSS_SELECTOR , filter_css_selector ))
811+ )
812+ except TimeoutException :
813+ self .fail (f'{ filter_css_selector } not available as expected' )
814+ else :
815+ self .web_driver .find_element (By .CSS_SELECTOR , filter_css_selector ).click ()
816+ try :
817+ WebDriverWait (self .web_driver , 2 ).until (
818+ EC .presence_of_element_located (
819+ (By .CSS_SELECTOR , '.select2-container--open' )
820+ )
821+ )
822+ except TimeoutException :
823+ self .fail ('select2 widget did not open as expected' )
781824 self .assertIn (self .admin .username , self .web_driver .page_source )
782825 self .assertIn (user .username , self .web_driver .page_source )
783- self .web_driver .find_element (By .XPATH , filter_null_option_xpath ).click ()
826+ try :
827+ WebDriverWait (self .web_driver , 2 ).until (
828+ EC .presence_of_element_located ((By .XPATH , filter_null_option_xpath ))
829+ )
830+ except TimeoutException :
831+ self .fail (f'{ filter_null_option_xpath } not available as expected' )
832+ else :
833+ self .web_driver .find_element (By .XPATH , filter_null_option_xpath ).click ()
784834 self ._get_filter_button ().click ()
785835 self .assertIn ('owner_id__isnull=true' , self .web_driver .current_url )
786836 with self .assertRaises (NoSuchElementException ):
0 commit comments