我正在使用具有自定义堆栈面板的WPF应用程序,它基本上是一个列表。列表中的项目完全相同,因此我无法选择特定文本来唯一标识元素。而其他一些价值观也是动态的。
有没有办法让我获得返回的元素列表。我知道这是可能的,因为抛出了错误,ElementAmbiguousError说明了计数。
如果我能做到这一点,那么从该列表中我可以使用索引并验证我需要的内容。
答案 0 :(得分:1)
您可以将library(dendextend)
pdf("Rplots.pdf", height=10, width=12)
par(cex=0.4)
clustering <- hclust(distance,method="ward.D2")
group <- data.frame(cutree(clustering,k=2))
clustering <- as.dendrogram(clustering,hang=0.2)
labels_colors(clustering) <- as.numeric(category)
labels(clustering) <- category
plot(clustering)
### Variable category is defined earlier in the code.
或其他索引添加到窗口规范对象中。这是消除搜索歧义的第一种方法。
还有方法found_index=0
和.children()
以及其他参数,例如.descendants()
或control_type
(我记得title
应该有效),但有些窗口规范这些方法不支持params。
答案 1 :(得分:0)
elements = pywinauto.findwindows.find_elements(<args>)
len(elements)
<args>
需要包含比使用Application().connect(process=<pid>).window().child_window(<args>)
之类的内容更详细的信息,因为它没有关于您正在搜索的窗口的链中的信息。有关详细信息,请参阅the documentation on this method。
另请注意,建议不建议直接使用此方法,因为它是低级API。
另一个解决方案(已由vasily提供)是解析当找到多个元素以隔离找到的数字时返回的错误。
除非pywinauto开发人员决定提供更高级别的API来访问找到的元素数量,否则您必须权衡低级API更改的风险以及解析错误消息的风险,这也可能会更改。我也有这个问题,并决定使用find_elements()