0

我正在尝试使用 Bryntum Siesta Test填充一个textfield然后运行单击事件。整个测试过程已成功,但只有“保存”按钮对此点击事件没有响应,并一直显示:

Waited too long for: componentQuery "datatoolbar[id=datatoolbar-1100]"
Failed assertion `waitForComponentQuery` 
Condition was not fullfilled during 10000ms

如何使用 Bryntum Siesta 运行可见按钮的单击事件?

测试.js

describe('Testing Update Process', function (t) {
    t.it('Should to login with correct creds.', function (t) {
        t.chain(
            {waitForCQ: 'window[title=Login]'},
            {click: '>> textfield[itemId=userName]'},
            {type: 'user@name.com', target:'>> textfield[itemId=userName]'},
            {click: '>> textfield[name=password]'},
            {type: 'superSecretPass', target:'>> textfield[name=password]'},
            {click: '>> button[text=Submit]', desc: 'Submit process is succeed!'}
        )
    })

    t.it('Login window should be invisible', function (t) {
        t.chain(
            {waitForCQNotVisible: 'window[title=Login]', desc: 'Login window is hidden now!'}
        )
    })

    t.it('Should open Folio grid', function (t) {
        t.chain(
            {waitForCQ: 'treelist[itemId=navigationTreeList]', desc: 'Wait for treelist'},
            {click: '>> treelistitem[id=ext-treelistitem-6]', desc: 'Clicks Folio item'},
            {waitForCQ: 'treelistitem[id=ext-treelistitem-7]', desc: 'Wait for treelist sub-item: Folios'},
            {click: '>> treelistitem[id=ext-treelistitem-7]', desc: 'Clicks Folios'}
        )
    })

    t.it('Should click on Edit button', function (t) {
        t.chain(
            {waitForCQ: 'gridview[id=gridview-1067]'},
            {click: '>> button[id=button-1087]', desc: 'Clicks on Edit button'}
        )
    })

    t.it('Should update Client Name', function (t) {
        t.chain(
            {click: '>> textfield[name=clientname]'},
            {type: 'Siesta Testing for Update', target: '>> textfield[name=clientname]', desc: 'Types lorem ipsum data'}
        )
    })

    //This last part is giving error and test becomes failure.
    t.it('Should Save the last changes', function (t) {
        t.chain(
            {waitForCQ: 'datatoolbar[id=datatoolbar-1100]'},
            {click: '>> button[id=button-1104]', desc: 'Clicks on Save, All Succeed :-)'}
        )
    })
})

这是数据表单和测试片段的屏幕截图。正如您将在上面注意到的那样,我使用waitForCQdatatoolbar保存按钮。我也试过自己调用点击事件,但它也给出了错误:并且失败了。Wait for button[id=button-1104] to appear

该按钮已经可见,并且包装的 DOM 元素是 formdata(包括标签和文本字段)和 datatoolbar(包括按钮)。

在此处输入图像描述

4

1 回答 1

2

正如评论中已经指出的那样,原因可能只是一个不稳定的查询(因为它使用自动生成的 ID)。

错误消息 Waited too long for: componentQuery "datatoolbar[id=datatoolbar-1100]" 表明 Siesta 正在运行指定的组件查询,但未返回任何结果。

尝试使用您所定位的工具栏的更稳定和特定属性,而不是自动生成的 ID:datatoolbar[specificAttr=value]

于 2017-10-10T07:28:09.337 回答