问题
I am doing an acceptance test using watir-webdriver using ruby I wanna ask if watir webdriver is support for ExtJs or not? I am trying to find element that generated dynamically by ExtJS. I am trying doing some thing like
@browser = Watir::Browser.new :chrome
#Some step go to page
@cbo = @browser.execute_script "return Ext.getCmp('cboCategory')"
but It didn't work Please give me some advises. Thank you.
回答1:
ExtJS pages are hard to test, especially on finding elements.
Here are some of the tips I consider useful:
- Don't ever use dynamically generated IDs. like
(:id, 'ext-gen1302')
Don't ever use absolute/meaningless XPath, like
//div[4]/div[3]/div[4]/div/div/div/span[2]/span
Take advantage of meaningful auto-generated partial ids and class names.
For example, this ExtJS grid example:
(:css, '.x-grid-view .x-grid-table')
would be handy. If there are multiple of grids, try index them or locate the identifiable ancestor, like(:css, '#something-meaningful .x-grid-view .x-grid-table')
.Create meaningful class names in the source code. ExtJS provides
cls
andtdCls
for custom class names, so you can addcls:'testing-cmb-category'
in your source code, and get it by(:css, '.x-panel .testing-cmb-category')
.
Other answers I made on this topic:
- How to find unique selectors for elements on pages with ExtJS for use with Selenium?
- How to click on elements in ExtJS using Selenium?
- Using class names in Watir
- how to click on checkboxes on a pop-up window which doesn't have name, label
来源:https://stackoverflow.com/questions/19131396/watir-webdriver-and-extjs-finding-element