ruby - continued example - cannot find watir element -



ruby - continued example - cannot find watir element -

in cannot click html element watir, trying click element gives me row below:

i not able find 3 dropdown lists see in image above. how do ? each time, id of dropdown elements changes.

for example, middle 1 html code is:

<td> <select id="filtersjob6_intrinsic_enumoperator" name="filtersjob6_intrinsic_enumoperator" onchange="if(top.document.getelementbyid('filtersjob6_intrinsic_enumoperator').value=='isnull'||top.document.getelementbyid('filtersjob6_intrinsic_enumoperator').value=='isnotnull'){top.document.getelementbyid('filtersjob6_intrinsic_operand1container').style.display='none';}else{top.document.getelementbyid('filtersjob6_intrinsic_operand1container').style.display='inline';}"> <option value="equals" selected="selected">equals</option> <option value="notequal">not equals</option> <option value="isnull">is not set</option> <option value="isnotnull">is set</option> </select> </td>

the id id="filtersjob6_intrinsic_enumoperator" can have number 4,7,6,5 etc.

how create watir find element ?

edit -

here code first dropdown: <select id="filtersjob3_intrinsic_name" name="filtersjob3_intrinsic_name" onchange="var shown=0;top.document.getelementbyid('filtersjob3_intrinsic_operator').style.display='none';top.document.getelementbyid('filtersjob3_intrinsic_operand1').style.display='none';top.document.getelementbyid('filtersjob3_intrinsic_operand2').style.display='none';top.document.getelementbyid('filtersjob3_intrinsic_dateoperator').style.display='none';top.document.getelementbyid('filtersjob3_intrinsic_enumoperator').style.display='none';top.document.getelementbyid('filtersjob3_intrinsic_listoperator').style.display='none';top.document.getelementbyid('filtersjob3_intrinsic_uuidoperator').style.display='none';top.document.getelementbyid('filtersjob3_intrinsic_datehelp1').style.display='none';top.document.getelementbyid('filtersjob3_intrinsic_datehelp2').style.display='none';top.document.getelementbyid('filtersjob3_intrinsic_operand1abortstatus').style.display='none';top.document.getelementbyid('filtersjob3_intrinsic_operand1outcome').style.display='none';top.document.getelementbyid('filtersjob3_intrinsic_operand1priority').style.display='none';top.document.getelementbyid('filtersjob3_intrinsic_operand1status').style.display='none';top.document.getelementbyid('filtersjob3_intrinsic_operand1errorcode').style.display='none';if(top.document.getelementbyid('filtersjob3_intrinsic_name').value=='abortstatus'){shown=1;top.document.getelementbyid('filtersjob3_intrinsic_enumoperator').style.display='inline';top.document.getelementbyid('filtersjob3_intrinsic_operand1abortstatus').style.display='inline';top.document.getelementbyid('filtersjob3_intrinsic_operand2container').style.display='none';}if(top.document.getelementbyid('filtersjob3_intrinsic_name').value=='outcome'){shown=1;top.document.getelementbyid('filtersjob3_intrinsic_enumoperator').style.display='inline';top.document.getelementbyid('filtersjob3_intrinsic_operand1outcome').style.display='inline';top.document.getelementbyid('filtersjob3_intrinsic_operand2container').style.display='none';}if(top.document.getelementbyid('filtersjob3_intrinsic_name').value=='priority'){shown=1;top.document.getelementbyid('filtersjob3_intrinsic_enumoperator').style.display='inline';top.document.getelementbyid('filtersjob3_intrinsic_operand1priority').style.display='inline';top.document.getelementbyid('filtersjob3_intrinsic_operand2container').style.display='none';}if(top.document.getelementbyid('filtersjob3_intrinsic_name').value=='status'){shown=1;top.document.getelementbyid('filtersjob3_intrinsic_enumoperator').style.display='inline';top.document.getelementbyid('filtersjob3_intrinsic_operand1status').style.display='inline';top.document.getelementbyid('filtersjob3_intrinsic_operand2container').style.display='none';}if(top.document.getelementbyid('filtersjob3_intrinsic_name').value=='errorcode'){shown=1;top.document.getelementbyid('filtersjob3_intrinsic_enumoperator').style.display='inline';top.document.getelementbyid('filtersjob3_intrinsic_operand1errorcode').style.display='inline';top.document.getelementbyid('filtersjob3_intrinsic_operand2container').style.display='none';}if(top.document.getelementbyid('filtersjob3_intrinsic_name').value=='jobid'){shown=1;top.document.getelementbyid('filtersjob3_intrinsic_uuidoperator').style.display='inline';top.document.getelementbyid('filtersjob3_intrinsic_operand1').style.display='inline';top.document.getelementbyid('filtersjob3_intrinsic_operand2container').style.display='none';}if(top.document.getelementbyid('filtersjob3_intrinsic_name').value=='createtime'){shown=1;top.document.getelementbyid('filtersjob3_intrinsic_dateoperator').style.display='inline';top.document.getelementbyid('filtersjob3_intrinsic_operand1').style.display='inline';top.document.getelementbyid('filtersjob3_intrinsic_datehelp1').style.display='inline';top.document.getelementbyid('filtersjob3_intrinsic_operand2').style.display='inline';top.document.getelementbyid('filtersjob3_intrinsic_datehelp2').style.display='inline';}if(top.document.getelementbyid('filtersjob3_intrinsic_name').value=='finish'){shown=1;top.document.getelementbyid('filtersjob3_intrinsic_dateoperator').style.display='inline';top.document.getelementbyid('filtersjob3_intrinsic_operand1').style.display='inline';top.document.getelementbyid('filtersjob3_intrinsic_datehelp1').style.display='inline';top.document.getelementbyid('filtersjob3_intrinsic_operand2').style.display='inline';top.document.getelementbyid('filtersjob3_intrinsic_datehelp2').style.display='inline';}if(top.document.getelementbyid('filtersjob3_intrinsic_name').value=='modifytime'){shown=1;top.document.getelementbyid('filtersjob3_intrinsic_dateoperator').style.display='inline';top.document.getelementbyid('filtersjob3_intrinsic_operand1').style.display='inline';top.document.getelementbyid('filtersjob3_intrinsic_datehelp1').style.display='inline';top.document.getelementbyid('filtersjob3_intrinsic_operand2').style.display='inline';top.document.getelementbyid('filtersjob3_intrinsic_datehelp2').style.display='inline';}if(top.document.getelementbyid('filtersjob3_intrinsic_name').value=='start'){shown=1;top.document.getelementbyid('filtersjob3_intrinsic_dateoperator').style.display='inline';top.document.getelementbyid('filtersjob3_intrinsic_operand1').style.display='inline';top.document.getelementbyid('filtersjob3_intrinsic_datehelp1').style.display='inline';top.document.getelementbyid('filtersjob3_intrinsic_operand2').style.display='inline';top.document.getelementbyid('filtersjob3_intrinsic_datehelp2').style.display='inline';}if(!shown){top.document.getelementbyid('filtersjob3_intrinsic_operator').style.display='inline';top.document.getelementbyid('filtersjob3_intrinsic_operator').onchange();top.document.getelementbyid('filtersjob3_intrinsic_operand1').style.display='inline';top.document.getelementbyid('filtersjob3_intrinsic_operand2').style.display='inline';}"> <option value="abortstatus" selected="selected">abort status</option> <option value="abortedby">aborted by</option> <option value="createtime">create time</option> <option value="directoryname">directory name</option> <option value="elapsedtime">elapsed time</option> <option value="errorcode">error code</option> <option value="errormessage">error message</option> <option value="finish">finish date &amp; time</option> <option value="credentialname">impersonation credential</option> <option value="jobid">job id</option> <option value="jobname">job name</option> <option value="lastmodifiedby">last modified by</option> <option value="launchedbyuser">launched user</option> <option value="licensewaittime">license wait time</option> <option value="liveprocedure">live procedure</option> <option value="liveschedule">live schedule</option> <option value="modifytime">modify time</option> <option value="outcome">outcome</option> <option value="owner">owner</option> <option value="priority">priority</option> <option value="procedurename">procedure name</option> <option value="projectname">project name</option> <option value="resourcewaittime">resource wait time</option> <option value="runasuser">run user</option> <option value="schedulename">schedule name</option> <option value="start">start date &amp; time</option> <option value="statename">state name</option> <option value="status">status</option> <option value="totalwaittime">total wait time</option> <option value="workspacewaittime">workspace wait time</option> </select>

you can utilize regular look in locator:

browser.select_list(:id => /filtersjob\d+_intrinsic_enumoperator/).select value_to_select

in example, regular look denoted opening , closing forwards slashes, , digit within original string replaced \d+, means "one or more digits".

edit:

given minimal html snippet:

<select id="filtersjob6_intrinsic_enumoperator"> <option value="isnull">is not set</option> <option value="isnotnull">is set</option> </select>

use select take on alternative based on text:

b.select_list(:id => /filtersjob\d+_intrinsic_enumoperator/).select 'is set'

use select_value take alternative based on value attribute:

b.select_list(:id => /filtersjob\d+_intrinsic_enumoperator/).select_value 'isnotnull'

ruby watir watir-webdriver

Comments

Popular posts from this blog

java - How to set log4j.defaultInitOverride property to false in jboss server 6 -

c - GStreamer 1.0 1.4.5 RTSP Example Server sends 503 Service unavailable -

Using ajax with sonata admin list view pagination -