I am automating a windows application through a desktop session using Appium and Windows Application Driver. Certain elements I want to interact with don't have unique accessibility IDs but the combination of their class names and IDs does seem to be unique. How can I first get a list of elements by their class name and then fetch one of them with certain ID?
I am aware that the second line of code provided is not correct, I'm just showing it to demonstrate what behavior I need.
Below is through class
name:
class_elements = driver.find_elements_by_class_name("some_class_name")
Below is through an accessibility
id:
specific_element = class_elements.find_element_by_accessibility_id("some_id")
specific_element.click()
Is there a way to put both of these together in a loop?
Thank you @Moshe Slavin for your suggestion
I tried the following piece of code
@pytest.mark.trial
def test_trial():
className = "UIProperty"
class_elements = ds.find_elements_by_class_name("UIProperty")
for elm in class_elements:
print(elm.get_attribute('id'))
if elm.get_attribute('id') == "System.ItemNameDisplay":
elm.click()
I decided to print the IDs as well. I got the following results:
None
None
None
...
I'm quite confused as to why this is happening. I'm using the Windows Inspect tool from SDK to gather properties of the UI elements and there definitely is and element present that matches both the class name and the ID.