2016-08-05 12 views
0

Ich habe Probleme mit dem Objekt lokalisiertFührungselemente mit Selen WebDriver und Angular

Ich habe

<div class="form-item-pair form-group left" field="SearchGroup.Network"> 
    <div class="form-label"> 
    <div class="form-value"> 
     <ng-transclude> 
      <div class="ui-select-container ui-select-bootstrap dropdown ng-valid" ng-class="{open: $select.open}" ng-model="vm.criteria.networkName"> 
       <div class="ui-select-match" ng-class="{'btn-default-focus':$select.focus}" ng-disabled="$select.disabled" ng-hide="$select.open" placeholder="Select network..."> 
        <span class="btn btn-default form-control ui-select-toggle" style="outline: 0;" ng-click="$select.activate()" ng-disabled="$select.disabled" aria-label="Select box activate" tabindex="-1"> 

ich auf letzte Element klicken muss span, wie Pfad, in Code zum letzten Spanne schaffen nur field="SearchGroup.Network" ist einzigartig ?

driver.findElement(By.xpath("//span[@class='btn btn-default form-control ui-select-toggle']")).click(); 

Es funktioniert nicht, weil es nicht eindeutig ist

Antwort

0

Versuchen Sie, diese

driver.findElement(By.xpath("//div[@class='ui-select-match']/span")).click(); 

oder dieses

driver.findElement(By.xpath("//div[@class='ui-select-match']/following::span[1]")).click; 
3

Sie sollten einen CSS-Selektor verwenden. Fügen Sie einige der auf dem Pfad vorhandenen Attribute hinzu, um es eindeutig zu machen:

driver.findElement(By.cssSelector(
    "[field='SearchGroup.Network'] [placeholder='Select network...'] span[aria-label='Select box activate']" 
)).click();