我在 Windows 10 上使用“WinAppDriver”使用“Appium.WebDriver”NuGet 包自动单击按钮。
要通过“Id”或“Name”查找元素,需要更多时间(最初大约 5 秒),当 WinAppDriver 连续运行超过 30 分钟或 1 小时时,问题会变得更糟。
为了避免性能下降,我不使用“app”、“root”,而是使用“appTopLevelWindow”、“topLevelWindowHandle”,如下所示。
- 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);
- 执行按钮单击:
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 的运行时间线性增加。我想摆脱这个时间延迟。请帮忙。