失败:无法读取未定义的属性(量角器)
//get count of checked checkboxes,
//count must be 1 because it selected one product
var checkedCount = productPage.selectedProducts.count();
expect(checkedCount).toBe(1).then(function() {
browser.sleep(2222);
productDialogPage. createTaskButton.click();
});
这是我的代码。当用户选择时,createtaskbutton被激活。失败:无法读取未定义的属性(量角器)
通常它被禁用。
误差
Failed: Cannot read property 'then' of undefined Stack: TypeError: Cannot read property 'then' of undefined
当我改变这个
//get count of checked checkboxes, count must 1 be because it selected one product
var checkedCount = productPage.selectedProducts.count();
expect(checkedCount).toBe(1);
browser.sleep(4222);
//click task create and expect confirm dialog to be displyed
productDialogPage.createTaskButton.click();
same
Message: Failed: Cannot read property 'click' of undefined Stack: TypeError: Cannot read property 'click' of undefined
它亘古不变的阅读我的规范类,它一旦进入去另一个规范。
也出于同样
//get count of checked checkboxes, count must 1 be because it selected one product
var checkedCount = productPage.selectedProducts.count();
expect(checkedCount).toBe(1);
browser.sleep(4222);
browser.wait(function() {
return productDialogPage.createTaskButton.isPresent();
})
-
expect(actual).toBe(expected)
不是thenable,因为它不返回的承诺。 - 看来,你应该尝试
ExpectedConditions
var EC = ExpectedConditions;
//get count of checked checkboxes,
//count must be 1 because it selected one product
var checkedCount = productPage.selectedProducts.count();
expect(checkedCount).toBe(1);
browser.wait(EC.elementToBeClickable(productDialogPage.createTaskButton, 4222));
//click task create and expect confirm dialog to be displyed
productDialogPage.createTaskButton.click();
但是当我在这里选择产品 'var checkedCount = productPage.selectedProducts.count();期望(checkedCount).toBe(1);' 它被启用。不需要点击? – pronto
从你的帖子你说,createTaskButton被禁用,所以你应该等待createTaskButton是可点击的。要么你的createTaskButton不是一个实际的元素。 – cnishina
我改变了你的,因为它给了错误 protractor.ExpectedConditions; 但仍然有错误 : '失败:无法读取未定义 堆栈的特性“isPresent”: 类型错误:无法读取属性“isPresent”未定义' 尽管我没有ispresent。错误行是 'browser.wait(EC.elementToBeClickable(productDialogPage.createTaskButton,4222));' – pronto
对我来说ExpectedConditions(http://www.protractortest.org/#/api?view=ProtractorExpectedConditions.prototype.elementToBeClickable)的帮助下,之前看到答案。你必须解决承诺。希望能帮助到你! :-)
productPage.selectedProducts.count().then(function(countOfSelectedProducts) {
expect(countOfSelectedProducts).toBe(1);
});
});
// and then wait till your TaskButton is enabled via ExpectedConditions.elementToBeClickable
var EC = protractor.ExpectedConditions;
browser.wait(EC.elementToBeClickable(productDialogPage.element.createTaskButton()), 10000).then(function() {
productDialogPage.element.createTaskButton.click();
});
如何获取元素createTaskButton? – gyc