Ionic搜索栏搜索在Cyprus{enter}上不起作用



我有一个Ionic 6应用程序,我正在用柏树9.3.1测试它。

在我的应用程序中,我使用的离子搜索栏如下:

<ion-searchbar *ngIf="showSearchbar" [value]="search" (search)="searchQuestions($event)"
placeholder="{{'components.search.placeholder' | translate}}">

searchQuestions方法如下所示:

public searchQuestions(event): void {
console.log('test');
this.triggerSearch.emit(event.target.value);
}

当我手动测试它时,一切都很好,但当我执行这样的柏树代码时:

cy.get('.searchbar-input')
.type('test1' + '{leftArrow}{del}{enter}' + 'test');

输入字段中填充了testtest,因此{leftArrow}{del}正在工作,但来自searchQuestionsconsole.log没有执行,事件也没有发出

编辑:当我使用(keyup.enter)="searchQuestions($event)"而不是(search)="searchQuestions($event)"时,它似乎工作得很好。但我想替换它对原生应用程序来说会有问题,保留两者可能会带来问题。

应用程序或Ionic框架正在添加一个事件处理程序来触发search事件,但Cypress对此一无所知。

.type()命令中,它只发出键盘事件,这就是为什么(keyup.enter)="searchQuestions($event)"会触发,而(search)="searchQuestions($event)"不会。

首先要尝试的是

cy.get('.searchbar-input')
.type('test1' + '{leftArrow}{del}{enter}' + 'test')
.trigger('search')

同时尝试触发其他事件,如.trigger('change').trigger('input')


另一个可能导致它的原因是类型字符串中间的{enter}

试试.type('test1' + '{leftArrow}{del}' + 'test' + '{enter}')——这似乎更像是用户会使用的模式。

最新更新