Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/437.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
Javascript watirwebdriver和extjs查找元素_Javascript_Ruby_Extjs_Selenium_Watir - Fatal编程技术网

Javascript watirwebdriver和extjs查找元素

Javascript watirwebdriver和extjs查找元素,javascript,ruby,extjs,selenium,watir,Javascript,Ruby,Extjs,Selenium,Watir,我正在使用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页面很难

我正在使用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.x-grid-view.x-grid-table')

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

我对这个问题的其他回答是:


更具体地说明你想做什么会有帮助-例如,给出一个实际的例子。ExtJS有很多特性,这意味着一般的响应可能没有用处。如果您的页面不可供公众使用,那么请考虑给出一个不适合您快速回复的示例。真是帮了我大忙