Watir webdriver和extjs寻找元素

我正在使用使用ruby的watir-webdriver进行验收测试我想问一下watir webdriver是否支持ExtJs? 我试图找到由ExtJS动态生成的元素。 我正在尝试做一些事情

@browser = Watir::Browser.new :chrome #Some step go to page @cbo = @browser.execute_script "return Ext.getCmp('cboCategory')" 

但它不起作用请给我一些建议。 谢谢。

ExtJS页面很难测试,特别是在查找元素时。

以下是我认为有用的一些提示:

  • 不要使用动态生成的ID。 喜欢(:id, 'ext-gen1302')
  • 不要使用绝对/无意义的XPath,比如//div[4]/div[3]/div[4]/div/div/div/span[2]/span

  • 利用有意义的自动生成的部分ID和类名称。

    例如, 这个 ExtJS网格示例:( (:css, '.x-grid-view .x-grid-table')会很方便。 如果有多个网格,请尝试索引它们或找到可识别的祖先,例如(:css, '#something-meaningful .x-grid-view .x-grid-table')

  • 在源代码中创建有意义的类名。 ExtJS为自定义类名提供了clstdCls ,因此您可以在源代码中添加cls:'testing-cmb-category' ,并通过(:css, '.x-panel .testing-cmb-category')获取它。

我就这个主题做出的其他答案:

  • 如何使用ExtJS在页面上找到元素的唯一选择器以与Selenium一起使用?
  • 如何使用Selenium点击ExtJS中的元素?
  • 在Watir中使用类名
  • 如何在弹出窗口中单击没有名称,标签的复选框