【发布时间】:2020-04-01 07:38:03
【问题描述】:
如何验证数组的每个元素是否包含 Typescript/ Protractor 中的搜索字符串? 所有控制台语句都返回 false,因为它们正在寻找完整的文本而不是搜索字符串。请提出解决方案。
arr = [ 'Citibank, N.A.', 'Citi China Companies', 'Citibank Ireland' ]
search string = 'citi'
Then('I enter search text where the highlighted search results will include a Client Company Name {string}, {string}', async (searchText, companyName) => {
await acctmgrclientselection.deleteSearchText().then(async () => {
await acctmgrclientselection.getSelectClientSearchInputEl().sendKeys(searchText).then(async () => {
await acctmgrclientselection.getSelectClientSearchInputEl().sendKeys(protractor.Key.ENTER).then(async () => {
await dashboardFilter.getEmployeeListGrid().count().then( async ( CountVal ) => {
if(CountVal >1)
{
var strArr: Array<string> = [];
await acctmgrclientselection.getClientTblCompanyName().getText().then(async (text) => {
await strArr.push(text)
//strArr.forEach(function(value){
var sortable = [];
strArr.forEach(value => {
sortable.push([value]);
let sorted_array: Array<string> = sortable.map(arr => arr[0])
let result = sorted_array.every(element => element.includes(searchText))
console.log(result)
});
});
}
else
{
//clear criteria
console.log('clear criteria');
await element(by.cssContainingText('mat-card.empty-results.mat-card p','0 results matching your criteria')).isDisplayed().then(async()=>{
await element(by.cssContainingText('mat-card.empty-results.mat-card a','Clear Criteria')).isDisplayed();
});
}
});
});
});
});
});
【问题讨论】:
-
array.every(element => element.includes(searchString))。 developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…,developer.mozilla.org/fr/docs/Web/JavaScript/Reference/…。你真的需要学习 await 的原理,因为你没有抓住重点。 -
是的,我得看看 await。
-
它仍然检索到一个错误
-
那么就说明不是所有的元素都包含子串。什么是数组?搜索字符串是什么?
-
数组是 arr = [ 'Citibank, N.A.', 'Citi China Companies', 'Citibank Ireland' ] 并且搜索字符串是 'citi'
标签: arrays typescript search substring