1

我在 Windows 10 上使用“WinAppDriver”使用“Appium.WebDriver”NuGet 包自动单击按钮。

要通过“Id”或“Name”查找元素,需要更多时间(最初大约 5 秒),当 WinAppDriver 连续运行超过 30 分钟或 1 小时时,问题会变得更糟。

为了避免性能下降,我不使用“app”、“root”,而是使用“appTopLevelWindow”、“topLevelWindowHandle”,如下所示。

  1. Appium WindowsDriver 对象初始化:
    var topLevelWindowHandle = applicationWindow.GetAttribute("NativeWindowHandle");

    topLevelWindowHandle = int.Parse(topLevelWindowHandle).ToString("X"); 
    DesiredCapabilities capabilities = new DesiredCapabilities();
    capabilities.SetCapability("deviceName", "WindowsPC");
    capabilities.SetCapability("appTopLevelWindow", topLevelWindowHandle);
    windowsDriver = new WindowsDriver<WindowsElement>(new Uri("http://127.0.0.1:4723"), capabilities);
  1. 执行按钮单击:
    if(windowsDriver != null)
    {
        testInformationDialog = windowsDriver.FindElementsByName("Test Information");

        ReadOnlyCollection<WindowsElement> okButton = null;
        //If test information dialog is present, get the ok button and click it
        if(testInformationDialog.Count != 0)
        {
            okButton = windowsDriver.FindElementsByAccessibilityId("210");
            if(okButton.Count != 0)
            {
                okButton.First().Click();
                Thread.Sleep(3000);
            }
        }
    }

最初 WinAppDriver 需要大约 5 秒来单击按钮。在连续运行并每约 5 秒单击一次按钮时,检测按钮所需的时间会增加。大约 1 小时后,要找到相同的按钮,需要 10 秒,并且所花费的时间随着 WinAppDriver 的运行时间线性增加。我想摆脱这个时间延迟。请帮忙。

4

0 回答 0