selenium - Clicking on checkbox based on span value in WebDriver -


i select checkbox based on "costco wholesale corporation" value in:

<td role="gridcell" style="" title="" aria-describedby="entity-search-grid_selected">   <input type="checkbox" name="chkbox" class="itmchk" value="110504"> </td> <td role="gridcell" style="font-weight: bold;" title="costco wholesale corporation" aria-describedby="entity-search-grid_name">   <div class="tree-wrap tree-wrap-ltr" style="width:18px;">     <div style="left:0px;" class="ui-icon ui-icon-triangle-1-s tree-minus treeclick"></div>                                            </div>   <span class="cell-wrapper">costco wholesale corporation</span> </td> 

i have tried following code:

driver.findelement(by.xpath("//td[span[text()='costco wholesale corporation']]/preceding-sibling::td/input[@name='chkbox'")); 

but getting following exception:

invalid selector: unable locate element xpath expression //td[span[text()='costco wholesale corporation']]/preceding-sibling::td/input[@name='chkbox' because of following error: syntaxerror: failed execute 'evaluate' on 'document': string '//td[span[text()='costco wholesale corporation']]/preceding-sibling::td/input[@name='chkbox''

could write xpath selector.

your first problem xpath td[span[text() invalid. remember [...] syntax filters, not defining path. has be:

//td/span[text... 

also since select span first, need td level , choose sibling:

//td/span[text()='costco wholesale corporation']/../preceding-sibling::td/input[@name='chkbox'] 

given html, simplify select td byt title , sibling:

//td[@title='costco wholesale corporation']/preceding-sibling::td/input[@name='chkbox'] 

Comments

Popular posts from this blog

javascript - Slick Slider width recalculation -

jsf - PrimeFaces Datatable - What is f:facet actually doing? -

angular2 services - Angular 2 RC 4 Http post not firing -