Appium 在为桌面上的 WindowsElement 使用 xpath 时抛出 InvalidSelectorException?

问题描述 投票:0回答:0

我无法为 Windows 元素找到正确的 xpath 表达式 我有一个适用于 Windows 10 Enterprise 的自动化脚本,但不适用于 Windows Server OS

我使用 Appium 在 Windows 上自动化桌面工作流。所以我正在做的是单击任务栏上的搜索按钮,搜索团队并单击搜索结果。

1

此声明适用于 Windows Server 2019,但不适用于 Windows 10 Enterprise

pageDriver.findElementByName("Microsoft Teams, Desktop app").click()

适用于 Windows 10 企业版但不适用于 Windows Server 2019 的声明

pageDriver.findElementByName("Microsoft Teams, App, Press right to switch preview").click()

这是可以理解的,当我检查元素时,名称不同,所以我必须找到一个适用于两者的解决方案,所以我决定使用 xpath。但是以下所有 xpath 表达式都抛出 InvalidSelectorException。

pageDriver.findElementByXPath("//ListItem[starts-with(@Name, 'Microsoft Teams']");
pageDriver.findElementByXPath("//ListItem[contains(@Name, 'Microsoft Teams']");
pageDriver.findElementByXPath("//List[@Name='Results'][@AutomationId='suggestionsList']/ListItem[starts-with(@Name, 'Microsoft Teams']");

使用 WinAppDriverUIRecorder 为 Windows Server 上的元素完整记录的 xpath 是

"/Pane[@ClassName=\"#32769\"][@Name=\"Desktop 1\"]/Window[@ClassName=\"Windows.UI.Core.CoreWindow\"][@Name=\"Search\"]/Pane[@ClassName=\"WebView\"][@Name=\"Bing\"]/Pane[@Name=\"Bing\"]/List[@Name=\"Results\"][@AutomationId=\"suggestionsList\"]/ListItem[@Name=\"Microsoft Teams, Desktop app\"][starts-with(@AutomationId,\"id_\")]"

Windows 10 Enterprise 上完整记录的 xpath 是

"/Pane[@ClassName=\"#32769\"][@Name=\"Desktop 1\"]/Window[@ClassName=\"Windows.UI.Core.CoreWindow\"][@Name=\"Search\"]/Pane[@ClassName=\"WebView\"][@Name=\"Bing\"]/Pane[@Name=\"Bing\"]/List[@Name=\"Results\"][@AutomationId=\"suggestionsList\"]/ListItem[@Name=\"Microsoft Teams, App, Press right to switch preview\"][@AutomationId=\"PPMicrosoft Teams\"]"

我做错了什么?

但这是后续行动,我能够在 Windows 10 Enterprise OS 上使用 MS Teams 自动化整个工作流程,但不能在 Windows Server 上。 即使我忽略了这个只会启动 MS Teams 的语句,只是在 Windows Server 操作系统上使用不同的语句,所有其他语句都像

  • 点击团队
  • 为团队添加标签
  • 与选项卡内的元素交互

都在 Windows 10 Enterprise OS 中工作,但在 Windows Server 上不工作。 这是最奇怪的事情。 我必须让我的脚本在 Windows 10 Enterprise 和 Windows Server 上运行。目前在 Windows 10 上,脚本使用 AccessibilityIDs 和名称,但这似乎不适用于 Windows Server。更糟糕的是,我遇到了这个 xpath 问题。 我可以在这里做什么?

提前致谢。

appium ui-automation desktop-application winappdriver
© www.soinside.com 2019 - 2024. All rights reserved.