Excerpt from Sahi Support Forum
SEARCHING SAHI for an example of returning a collection or array
by “getElementsByID”, “getElementByName” or “getElementsByClass??
I do this regularly with VBS and QTP, but hit a big big speed-bump trying to convert those scripts to Sahi.
For instance:
Say you want to click on each of 20-500 closed nodes in different folder “trees” identified/marked by
<div class=abc id=img01n4><img src="plus.gif" title="xyz"/>definition of xyz</div>
Simply recording this in Sahi only gives 20-500 lines with every explicit ID – useless for varying node structures, without some glob or regex pattern of ID to return an array? I thought surely this has already been documented – but didn’t see any of the “getelement” functions in the Sahi Forums.
Finally found A CLUE, deep inside the demo folder of “_collect” which led to a solution of sorts below.
(I call the function 2-3 times, one for each of two nested levels.
A clone of the function handles a single node identified by DIV rather than SPAN.
I failed to open the topmost of each inner/second level node UNTIL I ran the loop “backwards” from top to bottom. You may want to experiment with “for(x=n;x
openNodes(); // first pass
openNodes(); // second / inner set of nodes
openDivNodes(); // one lonely stubborn node
openNodes(); // the last hold outs (the zero-th) inner / second level nodes
// functions below
function openNodes() {
var $plusgifs = _collect (“_image”, “/plus.gif/”, _in(_image(“image”))); //
_set($Count, $plusgifs.length);
for (var $i = $Count – 1; $i > 0 ; $i–)
{_click($plusgifs[$i]);}
// full example on Sahi forum
You must log in to post a comment.