Ext.button 的点击事件未响应 Bryntum Siesta 测试
Ext.button's click event is not response with Bryntum Siesta Test
我尝试用 Bryntum Siesta 测试填充 textfield
然后 运行 click 事件 。整个测试过程已经成功,但只有 'Save' 按钮没有响应此点击事件并保持说:
Waited too long for: componentQuery "datatoolbar[id=datatoolbar-1100]"
Failed assertion `waitForComponentQuery`
Condition was not fullfilled during 10000ms
如何 运行 使用 Bryntum Siesta 单击可见按钮的事件?
Test.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 :-)'}
)
})
})
这是数据表和测试片段的屏幕截图。正如您在上面注意到的那样,我将 waitForCQ
用于 datatoolbar
,它包裹了 Save 按钮。我也试过自己调用点击事件,但它也给出了错误:Wait for button[id=button-1104] to appear
并且失败了。
按钮已经可见并被包裹 DOM 元素是 formdata(包括标签和文本字段)和 datatoolbar(包括按钮)。
如评论中所述,原因可能只是查询不稳定(因为它使用自动生成的 ID)。
错误信息
Waited too long for: componentQuery "datatoolbar[id=datatoolbar-1100]"
表示 Siesta 是 运行 指定的组件查询,但未返回任何结果。
不要使用自动生成的 ID,请尝试使用目标工具栏的更稳定和更具体的属性:datatoolbar[specificAttr=value]
我尝试用 Bryntum Siesta 测试填充 textfield
然后 运行 click 事件 。整个测试过程已经成功,但只有 'Save' 按钮没有响应此点击事件并保持说:
Waited too long for: componentQuery "datatoolbar[id=datatoolbar-1100]"
Failed assertion `waitForComponentQuery`
Condition was not fullfilled during 10000ms
如何 运行 使用 Bryntum Siesta 单击可见按钮的事件?
Test.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 :-)'}
)
})
})
这是数据表和测试片段的屏幕截图。正如您在上面注意到的那样,我将 waitForCQ
用于 datatoolbar
,它包裹了 Save 按钮。我也试过自己调用点击事件,但它也给出了错误:Wait for button[id=button-1104] to appear
并且失败了。
按钮已经可见并被包裹 DOM 元素是 formdata(包括标签和文本字段)和 datatoolbar(包括按钮)。
如评论中所述,原因可能只是查询不稳定(因为它使用自动生成的 ID)。
错误信息
Waited too long for: componentQuery "datatoolbar[id=datatoolbar-1100]"
表示 Siesta 是 运行 指定的组件查询,但未返回任何结果。
不要使用自动生成的 ID,请尝试使用目标工具栏的更稳定和更具体的属性:datatoolbar[specificAttr=value]