@@ -21,42 +21,53 @@ def _get_product_id(self, driver):
2121 def test_add_product_metadata (self ):
2222 driver = self .driver
2323 pid = self ._get_product_id (driver )
24- driver .get (self .base_url + f"product/{ pid } /add_meta_data" )
24+ # Navigate to product page and use the Add Metadata action
25+ driver .get (self .base_url + f"product/{ pid } " )
26+ time .sleep (1 )
27+ driver .find_element (By .ID , "dropdownMenu1" ).click ()
28+ driver .find_element (By .LINK_TEXT , "Add Metadata" ).click ()
2529 time .sleep (1 )
26- driver .find_element (By .ID , "id_name" ).clear ()
27- driver .find_element (By .ID , "id_name" ).send_keys ("Test Metadata Key" )
28- driver .find_element (By .ID , "id_value" ).clear ()
29- driver .find_element (By .ID , "id_value" ).send_keys ("Test Metadata Value" )
30- driver .find_element (By .CSS_SELECTOR , "input.btn.btn-primary" ).click ()
30+ # Metadata uses Django formsets — field IDs are prefixed with form-0-
31+ name_field = driver .find_element (By .ID , "id_form-0-name" )
32+ name_field .clear ()
33+ name_field .send_keys ("Test Metadata Key" )
34+ value_field = driver .find_element (By .ID , "id_form-0-value" )
35+ value_field .clear ()
36+ value_field .send_keys ("Test Metadata Value" )
37+ # Submit button is a <button class="btn btn-success">
38+ driver .find_element (By .CSS_SELECTOR , "button.btn.btn-success" ).click ()
3139
3240 self .assertTrue (
33- self .is_success_message_present (text = "Metadata added successfully" )
34- or self .is_success_message_present (text = "metadata entry with the same name" )
41+ self .is_success_message_present (text = "Metadata updated successfully" )
3542 or self .is_text_present_on_page (text = "QA Test" ),
3643 )
3744
3845 @on_exception_html_source_logger
3946 def test_edit_product_metadata (self ):
4047 driver = self .driver
4148 pid = self ._get_product_id (driver )
42- driver .get (self .base_url + f"product/{ pid } /edit_meta_data " )
49+ driver .get (self .base_url + f"product/{ pid } " )
4350 time .sleep (1 )
44- # Find the value field and update it
45- value_fields = driver .find_elements (By .XPATH , "//input[@value='Test Metadata Value']" )
46- if len (value_fields ) > 0 :
47- value_fields [0 ].clear ()
48- value_fields [0 ].send_keys ("Updated Metadata Value" )
49- driver .find_element (By .CSS_SELECTOR , "input.btn.btn-primary" ).click ()
50- self .assertTrue (
51- self .is_success_message_present (text = "Metadata edited successfully" )
52- or self .is_text_present_on_page (text = "QA Test" ),
53- )
51+ # Click the edit metadata icon (pencil icon near metadata section)
52+ edit_links = driver .find_elements (By .CSS_SELECTOR , "a[title='Edit Information']" )
53+ if len (edit_links ) > 0 :
54+ edit_links [0 ].click ()
55+ time .sleep (1 )
56+ # Find the value field and update it
57+ value_fields = driver .find_elements (By .CSS_SELECTOR , "input[name$='-value']" )
58+ if len (value_fields ) > 0 :
59+ value_fields [0 ].clear ()
60+ value_fields [0 ].send_keys ("Updated Metadata Value" )
61+ driver .find_element (By .CSS_SELECTOR , "button.btn.btn-success" ).click ()
62+ self .assertTrue (
63+ self .is_success_message_present (text = "Metadata updated successfully" )
64+ or self .is_text_present_on_page (text = "QA Test" ),
65+ )
66+ else :
67+ self .assertTrue (self .is_text_present_on_page (text = "QA Test" ))
5468 else :
55- # If metadata doesn't exist yet, just verify the edit page loads
56- self .assertTrue (
57- self .is_text_present_on_page (text = "Edit Custom Fields" )
58- or self .is_text_present_on_page (text = "QA Test" ),
59- )
69+ # No edit link found — just verify the product page loads
70+ self .assertTrue (self .is_text_present_on_page (text = "QA Test" ))
6071
6172 @on_exception_html_source_logger
6273 def test_view_product_with_metadata (self ):
0 commit comments