【问题标题】:Watir webdriver and extjs finding elementWatir webdriver 和 extjs 查找元素
【发布时间】:2013-10-08 12:15:27
【问题描述】:

我正在使用 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 有很多特性,这意味着一般的响应可能没有用。如果您的页面不向公众开放,请考虑提供一个在 ExtJS webpage 中不起作用的示例

标签: javascript ruby extjs selenium watir


【解决方案1】:

ExtJS 页面很难测试,尤其是在查找元素方面。

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

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

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

    例如,this 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') 获取。

我对这个话题的其他回答:

【讨论】:

  • 感谢您的快速回复。这对我帮助很大
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-01-25
  • 2015-11-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多