我正在使用 Appium 和 Windows 应用程序驱动程序通过桌面会话自动化 Windows 应用程序。我想与之交互的某些元素没有唯一的可访问性 ID,但它们的类名和 ID 的组合似乎是唯一的。如何首先通过类名获取元素列表,然后获取其中一个具有特定 ID 的元素?
我知道提供的第二行代码不正确,我只是展示它来演示我需要什么行为。
以下是通过class
名称:
class_elements = driver.find_elements_by_class_name("some_class_name")
下面是通过一个accessibility
id:
specific_element = class_elements.find_element_by_accessibility_id("some_id")
specific_element.click()
有没有办法把这两个放在一个循环中?
谢谢@Moshe Slavin 的建议
我尝试了以下代码
@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()
我决定也打印身份证。我得到以下结果:
无
无
无
...我很困惑为什么会这样。我正在使用 SDK 中的 Windows Inspect 工具来收集 UI 元素的属性,并且肯定存在与类名和 ID 匹配的元素。