WinAppDriver Appium在 inspect.exe中找不到可见元素。

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

我正在对一个WinForms应用程序进行编程,该应用程序的gui是在2005年以前使用Visual Basic建立的,我经常会有一些元素在 inspect.exe中可见,但是当我运行WinAppDriver和Appium时,它无法检测到这些元素。我经常会有一些元素在 inspect.exe 中可见,但是当我运行 WinAppDriver 和 Appium 时,它无法检测到这些元素。

这是我得到的错误。

OpenQA.Selenium.WebDriverException: 'An element could not be located on the page using the given search parameters'.

即使当我的应用程序是唯一的最大化应用程序时,该错误也会发生。当我点击一个按钮并启动另一个表单时,就会发生这种情况。为了确保这不是因为元素还没有出现,我运行了Thread.Sleep(5000)命令,以确保被启动的表单有足够的时间出现。

这就是试图点击元素的那行代码。

driver.FindElementByAccessibilityId("vlblYVar").Click(); 

下面是一张图片,显示 inspect.exe 清楚地找到了元素。任何指导都将是非常感激的!我正在WinForms上编程。

enter image description here

vb.net selenium appium ui-automation winappdriver
1个回答
0
投票

结果发现,弹出的窗口中的元素需要相当长的时间才能被winappdriver识别,即使 inspect.exe马上就能接收到。

我不得不使用

var element = desktopWait.Until(SeleniumExtras.WaitHelpers.ExpectedConditions.VisibilityOfAllElementsLocatedBy(ByWindowsAutomation.AccessibilityId("vlblYVar")));
desktop.FindElementByAccessibilityId("vlblYVar").Click(); 

另外,我不得不使用一个加载桌面UI的驱动,因为使用我的程序的驱动永远找不到元素,这会导致超时。

不过我有一个新问题。当我有一个组合框时,用 inspect.exe 可以通过名字找到该组合框中的元素,但 winAppDriver 永远无法识别组合框中的元素。

© www.soinside.com 2019 - 2024. All rights reserved.