如何在Geb测试中使用siblings()和最近的()

问题描述 投票:0回答:1

我正在尝试编写脚本以单击作为表标题一部分的图标。表中的每一列都带有此图标(升序和降序排序图标)。我正在用Geb来做到这一点。这是我尝试执行的操作:

在我的SortingSpec.groovy文件中:

header.closest("div.customSortDownLabel").click()

我也尝试过

header.siblings('div.customSortDownLabel').first().click()

SortingPage.groovy文件中:

header {
    grid.$(class: 'div.customHeaderLabel', text: 'Country')
}

在我的html中:

<div>
    <div class="customHeaderLabel">{{params.displayName}}</div>
    <div *ngIf="params.enableSorting" (click)="onSortRequested('asc', $event)" [ngClass]="ascSort" class="customSortDownLabel">
        <i class="fa fa-long-arrow-alt-down"></i></div>
    <div *ngIf="params.enableSorting" (click)="onSortRequested('desc', $event)" [ngClass]="descSort" class="customSortUpLabel">
</div>

他们都没有为我工作。无法找到选择器。任何建议表示赞赏。

我看到的错误是:

geb.error.RequiredPageContentNotPresent:所需的页面内容'header-SimplePageContent(所有者:SortingGrid,args:[],值:null)'不存在

groovy geb
1个回答
0
投票

该错误看起来像标题不匹配。假设网格匹配,并且您正在使用诸如Angular之类的Javascript框架将params.displayName替换为“ Country”,我想可能是Geb在替换“ Country”之前找不到标题。因此,我将尝试让标题等待它:

header(wait: true) { grid.$(class: 'div.customHeaderLabel', text: 'Country') }

顺便说一句,closest()朝着祖先的方向错误,但是siblings()看起来不错。

© www.soinside.com 2019 - 2024. All rights reserved.