1

I have a feature file as:

Scenario: Verify user can select list value
Given Login user
When User clicks on column 
Then Drop down list should be visible
Then User can select any value from the drop down

In yml file I have locators as:

drop_down_list:
locator: "//div[@class='cdk-overlay-container']//div[@role='listbox']//mat-option"
strategy: XPATH

I am getting list xpath and elements xpath is like follows

//div[@class='cdk-overlay-container']//div[@role='listbox']//mat-option[1]
//div[@class='cdk-overlay-container']//div[@role='listbox']//mat-option[2]
//div[@class='cdk-overlay-container']//div[@role='listbox']//mat-option[3]
//div[@class='cdk-overlay-container']//div[@role='listbox']//mat-option[4]

.py file code is

pageName = get_node_from_description(page_name)
page_config_yaml = get_yaml_config_from(page_name)
dom_element_info = page_config_yaml.getValue(pageName, get_node_from_description(drop_down))
matching_element_on_pages = getMatchingElements(dom_element_info, browser)
dom_element_info = page_config_yaml.getValue(pageName, get_node_from_description(columnText))
matching_element_on_page = getMatchingElement(dom_element_info, browser)
value = matching_element_on_page.text
for element in matching_elements_on_page:
  val = element.text()

#Here I wanted to add [1] .[2] at the end of the dom_enlement_info

The dom_element_info is returning value like

 dom_element_info ={'locator': "//div[@class='cdk-overlay-container']//div[@role='listbox']//mat-option", 'strategy': 'XPATH'}

How to add the [1],[2] as per drop down value need

undetected Selenium
  • 183,867
  • 41
  • 278
  • 352
Pet
  • 41
  • 5

1 Answers1

0

You can add the indexes using the following Locator Strategies:

  • Instead of:

    //div[@class='cdk-overlay-container']//div[@role='listbox']//mat-option[1]
    
  • Use:

    //div[@class='cdk-overlay-container']//div[@role='listbox']//following::mat-option[1]
    
undetected Selenium
  • 183,867
  • 41
  • 278
  • 352
  • I am trying to add it using python code. As the current Page Model is returning the one set of list. dom_element_info ={'locator': "//div[@class='cdk-overlay-container']//div[@role='listbox']//mat-option", 'strategy': 'XPATH'} – Pet Feb 10 '22 at 02:43