2017-05-29 100 views
0

我正在用量角器寫一些e2e測試。我的應用程序是一個Angular Material 2應用程序。在我的測試中,我想按值選擇一個md-select選項。當我檢查打開的md-select時,我看到了md選項。選項的值位於屬性ng-reflect-value中。如何選擇角度材料2和量角器的選項?

比方說,我有值「optionA」的選項。如何通過此值選擇某個選項?

我嘗試這樣做:

element(by.name('myselect')).click(); 
$$('.mat-option').then((options) => { 
    ... 
}); 

和裏面然後我看到一個選項正確的號碼,但我怎麼能選擇具有價值「opetionA」的選項?

+0

只是好奇,爲什麼你想在E2E測試期間爲客戶選擇一個基於不可見值的選項?使用可見值不是更好,這是在[this]中解釋(https://stackoverflow.com/questions/44073870/trouble-locating-angular-element-for-protractor-ui-nav-test/44089777 #44089777)回答 – wswebcreation

+1

是的,你是對的。這可能是更好的解決方案。 –

回答

1

你可以做的是通過選擇添加期望值讓你的CSS選擇器的「動態」。例如

// I've place the expected value in a var to make it more clear 
 
const optionValue = 'your-option-value'; 
 

 
// Open select 
 
element(by.name('myselect')).click(); 
 
// Click on the option with your selected value 
 
$(`.mat-option[value="${optionValue}"]`).click();

我希望這有助於。

+0

值不是在角度材質2中的屬性。但是這適用於我: $('。mat-option [ng-reflect-value =「optionA」]')。click(); –