我们正在为使用ExtJ构建的Web应用程序开发基于Web的自动化解决方案。
目前我正在测试各种不同的对象识别技术,以最佳方式识别网页元素。
我们希望使用IE开发人员工具(F12)在页面上突出显示并选择DOM对象,并(以某种方式)获取相应的ExtJs组件(以及相应的属性,例如itemId)。
这可以通过代码或其他技术来实现吗?
答案 0 :(得分:6)
我不熟悉IE Dev工具,但是我可以尝试回答特定组件及其元素的定位。
您可以通过多种方式定位Ext组件:
Ext.ComponentQuery.query(CQselector)
方法(see docs for examples)Ext.getCmp(componentID)
如果您知道组件ID 自加载Ext库以来,可以从页面访问任何这些方法。在FF和Chrome等浏览器中,您可以直接从控制台执行这些方法。我猜它们应该可以在IE开发工具中使用。
一旦引用了Ext组件,就可以通过.dom或.el或类似属性获取HTML元素。或者您可以直接使用Dom query。
答案 1 :(得分:0)
我相信如果你设置id属性而不是itemId,你可以实现所需的结果,因为它作为组件的顶级容器的html id属性传递(我想!)。考虑到大多数extjs组件中使用的嵌套div /表的数量,让它精确地工作有点复杂。祝你好运!
答案 2 :(得分:0)
很难说出您要查找的内容,但如果您尝试获取对呈现的Ext.Component的引用,则可以在HTML结构中查找组件的包装器节点。 HTML id与组件ID相同。如果您运行var comp = Ext.getCmp('some-id-12345')
并且如果返回了某些内容,则您找到了Ext.Component
的包装器。
然后你可以使用
comp.itemId
检索itemId
你应该查看http://www.illuminations-for-developers.com/一个显示Ext.Components的firebug插件。
您还可以使用Sencha Page Analyzer查看整个组件树