Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ui automation 有没有办法从属性为IsControlElement=False的ui元素中检索信息?(Python+;Appium+;WinAppDriver)_Ui Automation_Python Appium_Appium Desktop_Winappdriver - Fatal编程技术网

Ui automation 有没有办法从属性为IsControlElement=False的ui元素中检索信息?(Python+;Appium+;WinAppDriver)

Ui automation 有没有办法从属性为IsControlElement=False的ui元素中检索信息?(Python+;Appium+;WinAppDriver),ui-automation,python-appium,appium-desktop,winappdriver,Ui Automation,Python Appium,Appium Desktop,Winappdriver,问候和问候 我正在为windows桌面应用程序(FrameworkId:Win32)进行UI自动化项目 堆栈:Python(3.7)+Appium(1.15.1)+WinAppDriver(v1.1) 我已使用Inspect.exe识别了一个元素,但当我尝试编码时,无论我做什么,都会收到以下错误: selenium.common.exceptions.NoSuchElementException:Message:使用给定的搜索参数在页面上找不到元素。 我使用的定位器策略是xpath: self.

问候和问候

我正在为windows桌面应用程序(FrameworkId:Win32)进行UI自动化项目 堆栈:Python(3.7)+Appium(1.15.1)+WinAppDriver(v1.1)

我已使用Inspect.exe识别了一个元素,但当我尝试编码时,无论我做什么,都会收到以下错误: selenium.common.exceptions.NoSuchElementException:Message:使用给定的搜索参数在页面上找不到元素。

我使用的定位器策略是xpath:
self.driver.通过xpath(“/*[@LocalizedControlType='text'和@IsControlElement='false'])查找元素

如您所见,Inspect.exe已显示它具有属性“
IsControlElement='false'
”,但我终身无法通过代码“访问”它

我还想指出,任何具有
IsControlElement='true'
的元素都可以正确找到,我可以与它们“交互”

非常感谢你的帮助

问题来源 这可能是Microsoft在.NET中的UI自动化实现中的一个问题。 属性
IsControlElement
应该返回
true
,但它没有返回

从我的测试来看,这似乎是
UIAutomationCore.dll
中的一个问题

推测,根本原因是自动化实现的目标是可访问性,他们错误地忽略了一些不可读的控件(
Image
Geometry
,等等)

某些情况下的变通方法
  • 尝试从具有文本的类型使用UI控件
  • 如果已经是文本控件,请尝试使用不同的文本控件类型。例如,在
    WPF
    项目中,使用
    Label
    而不是
    TextBlock
  • 如果它不是文本元素,如果可能,将控件包装在文本元素中。在
    WPF
    项目中,可以使用
    作为包装器
其他需要考虑的事情
  • 尝试使用
相关问题
旁注
因为您没有指定您使用的是什么,所以我无法为您的库提供示例。对不起。

你好,伊索!谢谢你的回复!如果我没有弄错的话,所使用的Python GUI库是win32all。我使用pywinauto自动化了同样的事情,最后我使用了“某种xpath”方法,其中我使用了.child_窗口(criteria).children()[x].children()[y]并访问了需要与\read交互的元素。在Appium中有什么方法可以做吗?我的意思是我知道你可以使用
驱动程序访问元素。通过xpath(“/*[@attribute='value']”)查找元素,但不完全确定从那里可以做什么。我还发现,如果你这样做:
驱动程序。通过xpath(/*[@attribute='value']/*)查找元素
这会将您带到下一个具有
IsControlElement=“True”
的节点,因此这是一个开始。