2017-04-19 18 views
0

有很多方法可以做到這一點,我嘗試了很多種方法,但是在做一個下拉菜單時我無法從下拉菜單中選擇一個項目自動化測試。無法從下拉菜單中選擇元素使用量角器的E2E測試

「選擇」是出現在下拉菜單中默認的選擇,我想自動測試挑選的要素之一,無所謂哪一個

這是HTML代碼

<select class="form-control ng-pristine ng-invalid ng-invalid-required" ng-model="user.investmentAmount" required="" ng-class="{submitted:invalid}"> 
 
        <option value="">Select</option> 
 
        <option value="<50"> 50K</option> 
 
        <option value="50-100">100K</option> 
 
        <option value="100-250">250K</option> 
 
        <option value="250-500">500K</option> 
 
        </select>

這是我的量角器文件

var selectDropdownbyNum = function (element, optionNum) { 
 
    if (optionNum){ 
 
     var options = element(by.cssContainingText("Select")) 
 
     .then(function(options){ 
 
      options[2].click(); 
 
     }); 
 
    } 
 
    }; 
 
    browser.sleep(2000);

我使用by.cssElement,by.xpath等 當我運行上面,我沒有得到任何錯誤,但它並沒有選擇任何元素或者嘗試。 謝謝

回答

0

選擇是一個奇怪的鴨肯定。我通常只需點擊文本選項(如果可能)。例如。你應該能夠做這樣的事......

var selectOptionByText = function(text) { 
    return element(by.cssContainingText('option', text)).click(); 
}; 
+0

感謝您的回覆,我終於得到了一個不同的下拉菜單中選擇相同頁面上使用的工作: '元素(by.model(「user.sourceOfFunds」))的SendKeys(「儲蓄」) ;'上面的線對我來說工作正常,但是當我嘗試'元素(by.model('user.investmentAmount'))。sendKeys('50 -100');''或'元素(by.model('user.investmentAmount'))。sendKeys('100k') ;'我看不到元素。不知道爲什麼一個作品,而不是其他 – Edmond

0

一旦你點擊//select[@ng-model='user.investmentAmount'] USNG的XPath, 把一些等待像「browser.sleep (2000)「然後使用//選項[text()='100K']點擊。

+0

感謝您的回覆,我終於得到了一個不同的下拉菜單中選擇相同頁面上使用的工作: '元素(by.model(「user.sourceOfFunds」))的SendKeys(」。 ');'上面的代碼適用於我,但是當我嘗試'元素(by.model('user.investmentAmount'))。sendKeys('50 -100');''''或元素(by.model(' user.investmentAmount'))。sendKeys('100k');'我得到元素不可見。不知道爲什麼一個工作,而不是其他 – Edmond

0

這是因爲你只選擇一個包含「選擇」值和預期陣列選項,

嘗試下面,首先得到由模型的選擇框,並獲得由 HTML標記名稱的所有選項陣列

browser.element(by.model('user.investmentAmount')).all(by.tagName('option')). 
    then(function(items){ 
     items[2].click(); 
}); 
+0

感謝您的回覆,我最終得到了一個不同的下拉菜單在同一頁上使用:element(by.model('user.sourceOfFunds'))。sendKeys('Savings' );上面的代碼適用於我,但是當我嘗試元素(by.model('user.investmentAmount'))。sendKeys('50 -100');或元素(by.model('user.investmentAmount'))。sendKeys('100k');我得到元素不可見。不知道爲什麼一個工作,而不是其他 – Edmond

+0

最好打開其他問題,如果你與它無關......但對於這個問題要麼解決它或關閉......所以在未來的其他人可以從中受益,,, –