2017-04-20 37 views
0
<tr class="form-row form-row-odd form-row-err form-cols-2 form_element_company_id"> 
    <th>Company&nbsp; 
     <span class="required">*</span> 
    </th> 
    <td> 
     <select name="company_id" class="selectmenu input-inf select2-initialized select2-hidden-accessible" tabindex="-1" aria-hidden="true"> 
      <option value="">— None —</option> 
      <option value="1" class="sub-option-0 ">Option 1</option> 
      <option value="14" class="sub-option-0 ">Option 2</option> 
      <option value="45" class="sub-option-1 " data-parent-name="Option 2="14">Option 2-1</option> 
      <option value="46" class="sub-option-1 " data-parent-name="Option 2" data-parent-id="14">Option 2-2</option> 
      <option value="47" class="sub-option-1 " data-parent-name="Option 2" data-parent-id="14">Option 2-3</option> 
      <option value="29" class="sub-option-0 ">Option 3</option> 
      <option value="30" class="sub-option-0 ">Option 4</option> 
      <option value="31" class="sub-option-0 ">Option 5</option> 
     </select> 
    </td> 
</tr> 

我試圖創建一個功能,機器會自動挑選從選擇2名=「COMPANY_ID」選項: 到目前爲止,我曾嘗試:量角器功能錯誤產生隨機選擇Selectui

function setUserCompany('selector'){  
    var companyField = $('selector'); 
     if (companyField.length == 0) { 
     return; 
     } 
     var options = companyField.find('option') 
    if (options.length == 0) { 
    return; 
    } 
    var randomIdx = Math.floor((Math.random() * selector.length)+1); 
    var randomValue = $(options.get(randomIdx)).attr('value'); 
    companyField.select2().val(randomValue).trigger('change'); 
    } 

^讓我「失敗:companyField.find不是一個功能」。

// var allOptions = element(by.css('name="group_id"')).element(by.css('.selectmenu')).all(by.tagName('option')); 
    // allOptions.count().then(function(numberOfItems) { 
    // return Math.floor(Math.random() * numberOfItems) + 1; 
    // }).then(function(randomNumber) { 
    // allOptions.get(randomNumber).click(); 
    // randomNumber(); 
    // }); 

^似乎並沒有工作

回答

0

我想你想獲得的隨機值或點擊隨機選項。你幾乎完成錯過了通過CSS名稱獲取選擇框。試試這個,

var companySelectBox = browser.element(by.css('[name="company_id"]')); 
companySelectBox.all(by.tagName('option')).then(function(options){ 
    //random id between option length 
    var randomId = Math.floor((Math.random() * options.length)+1); 
    console.log('random id ' + randomId); 
    options[randomId].getText().then(function(text){ 
     console.log('random option text ' + text); 
    }); 
    //click on random option 
    options[randomId].click(); 
    //TODO: whatever other task similar 
});