2016-08-05 37 views
0

我有問題,目標定位與硒的webdriver和角度定位元素

<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"> 

我必須單擊最後一個元素span,如何最後跨度創建的道路上,在代碼只field="SearchGroup.Network"是獨一無二的?

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

它不工作,因爲它不是唯一的

回答

0

試試這個

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

或這一個

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

您應該使用CSS選擇器。爲了使其具有獨特性,請添加路徑中存在的一些屬性:

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