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 & 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 & 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
Post a Comment