Cannot access Tree Nodes using TestStack.White -


i tried automate ms outlook calendar view teststack.white cannot handle trees , tree items.

on outlook's calendar view there calendar folders tree following structure:

enter image description here

searchcriteria searchcriteria = searchcriteria.bytext("calendar folders").andcontroltype(controltype.tree).andindex(0); tree calendartree = (tree)whitewindows.mainwindow.get(searchcriteria);  calendartree.click(); // action performed correctly - clicks on tree  console.writeline("no. of nodes: " + calendartree.nodes.count); // line throws exception 

something:

result stacktrace:   @ teststack.white.mappings.controldictionary.gettestcontroltype(string classname, string name, controltype controltype, string frameworkid, boolean isnativecontrol) in c:\teamcity\buildagent\work\89a20b30302799e\src\teststack.white\mappings\controldictionary.cs:line 157    @ teststack.white.mappings.controldictionary.gettestcontroltype(automationelement automationelement) in c:\teamcity\buildagent\work\89a20b30302799e\src\teststack.white\mappings\controldictionary.cs:line 218    @ teststack.white.factory.dictionarymappeditemfactory.create(automationelement automationelement, actionlistener actionlistener) in c:\teamcity\buildagent\work\89a20b30302799e\src\teststack.white\factory\dictionarymappeditemfactory.cs:line 13    @ teststack.white.uiitemlist`1..ctor(list`1 collection, uiitemfactory factory, actionlistener actionlistener) in c:\teamcity\buildagent\work\89a20b30302799e\src\teststack.white\uiitemlist.cs:line 26    @ teststack.white.uiitems.treeitems.tree.get_nodes() in c:\teamcity\buildagent\work\89a20b30302799e\src\teststack.white\uiitems\treeitems\tree.cs:line 54    @ teststack.white.bricks.delegateinvoker.actioninvokerwrapper`1.call(object[] args) in c:\teamcity\buildagent\work\89a20b30302799e\src\teststack.white\bricks\delegateinvoker.cs:line 198    @ teststack.white.bricks.dynamicproxyinterceptors.process(iinvocation invocation, coreinterceptcontext interceptedcontext) in c:\teamcity\buildagent\work\89a20b30302799e\src\teststack.white\bricks\dynamicproxyinterceptors.cs:line 21    @ teststack.white.interceptors.coreinterceptor.intercept(iinvocation invocation) in c:\teamcity\buildagent\work\89a20b30302799e\src\teststack.white\interceptors\coreinterceptor.cs:line 31    @ castle.dynamicproxy.abstractinvocation.proceed()    @ castle.proxies.treeproxy.get_nodes()    @ ui.tests.stepdefinitions.tempsteps.whencalendarisselectedonpage(string p0, string p1) in stepdefinitions\tempsteps.cs:line 183    @ lambda_method(closure , icontextmanager , string , string )    @ techtalk.specflow.bindings.bindinginvoker.invokebinding(ibinding binding, icontextmanager contextmanager, object[] arguments, itesttracer testtracer, timespan& duration)    @ techtalk.specflow.infrastructure.testexecutionengine.executestepmatch(bindingmatch match, object[] arguments)    @ techtalk.specflow.infrastructure.testexecutionengine.executestep(stepinstance stepinstance)    @ techtalk.specflow.infrastructure.testexecutionengine.onafterlaststep()    @ techtalk.specflow.testrunner.collectscenarioerrors()    @ ui.tests.features.playgroundfeature.scenariocleanup() in ui.tests\features\playground.feature.cs:line 0    @ ui.tests.features.playgroundfeature.selectnewcalendar() in uitests\features\playground.feature:line 11 result message:  test method ui.tests.features.playgroundfeature.selectnewcalendar threw exception:  teststack.white.mappings.controldictionaryexception: multiple testcontrols found controltype=tree view item , frameworkid: - teststack.white.uiitems.treeitems.win32treenode, teststack.white.uiitems.treeitems.wpftreenode, teststack.white.uiitems.treeitems.win32treenode 

for following piece of code same exception occurred:

foreach(treenode node in calendartree.nodes) // exception thrown here {     //perform action on nodes } 

does have workaround this?

we encountered exact same problem. appears bug. workaround developed interact nodes iuiitems instead of treenodes. have write little more custom code around interacting them, @ least allows perform click actions, etc.


Comments