是否有人成功使用量角器检测到离子弹出警报?我已经尝试了这里建议的所有解决方法,但没有运气。我需要量角器检测警报和检查警报中的文本。
下面是我编写的类,用于测试弹出窗口是否存在,并确保标题和正文中的文本是正确的:
var TestUtilities = function(){
this.popup = element(by.css('.popup-container.popup-showing.active'));
//Tests to see if $ionicPopup.alert exists
this.popupShouldExist = function() {
expect(this.popup.isDisplayed()).toBeTruthy();
};
//Tests to see if $ionicPopup.alert contains the text provided in the argument exists in the header
this.popupContainsHeaderText = function (text) {
this.popupShouldExist();
expect(this.popup.element(by.css('.popup-head')).getText()).toMatch(text);
};
//Tests to see if $ionicPopup.alert contains the text provided in the argument exists in the body
this.popupContainsText = function (text) {
this.popupShouldExist();
expect(this.popup.element(by.css('.popup-body')).getText()).toMatch(text);
};
};
module.exports=TestUtilities;
还可以查看这个网站了解更多关于在量角器中测试Ionic的信息它讨论了如何检查弹出窗口是否存在:http://gonehybrid.com/how-to-write-automated-tests-for-your-ionic-app-part-3/
我通过设置popup变量成功地测试了Ionic弹出窗口:
var popup = element(by.css('.popup-container.popup-showing.active'));
在测试中:
expect(popup.isDisplayed()).toBeTruthy();
Ionic Popups只是由DOM元素组成,所以你应该能够使用正常的定位器来查找/测试它们。因为它们不是由警报组成的,所以您链接到的问题的解决方案可能没有用。
我明白了-我看到很多问题在那里试图用非常复杂的方式来做它,但最后我尝试了这个,结果是这么简单。
检查元素并找到它的ng-repeat值,然后
var button = element(by.repeater('button in buttons')).getText()
你还需要让浏览器以某种方式等待几秒钟,这样它就不会在离子弹出窗口实际上不存在时解析到测试。
对于这个,browser.sleep(3000);
就是这样!然而,把另一个按钮放进去是一个小问题。var button = element(by.repeater('button in buttons')).get(0)
或.get(1)
return undefined不是函数
如果你喜欢这个答案,请接受它!如果我找到了另一个按钮,我就把它放到这里。