gpt4 book ai didi

angularjs - Protractor 测试的执行顺序

转载 作者:行者123 更新时间:2023-11-28 20:14:23 25 4
gpt4 key购买 nike

控制 Protractor 测试执行顺序的最佳方法是什么?

问题案例 1: Protractor 滑动 Angular 页面的速度太快,以至于无法操作(填写)输入数据。 (滑动逻辑是从不可见到可见,并将它们平移到窗口可见区域)。因此 Protractor 看不到窗口之外和不透明度为 0 的那些。为了测试,我只能填写第一页。其他人刷得太快(或异步)。

问题案例 2:在我填写第一页并提交表格后,数据已保存并且警报显示确认消息。然后 Protractor 必须单击下拉列表,浏览器应导航到显示已保存数据的页面。问题是由于警报稍后触发(必须等待警报), Protractor 在保存数据之前单击了下拉列表。

问题是:有没有办法控制测试在 Protractor 中按给定顺序执行?有没有办法按住滑动来填写日期(否则 Protractor 看不到它)?这是简化的代码:

    it('should fill in form and send data', function() {

// fill in textarea field
element.all(by.css('textarea')).first().clear().sendKeys('test');

// goes to page 2
browser.executeScript("angular.element(document.documentElement)
.injector().get('$rootScope').$broadcast('nextPage', {direction: 'next'});");

// Here is Problem 1. Though i can see this page when testing,
// the input is not visible for protractor.
// fill in input-field
element.all(by.css('input')).first().clear().sendKeys('test');

// goes to page 1
browser.executeScript("angular.element(document.documentElement)
.injector().get('$rootScope').$broadcast('prevPage', {direction: 'prev'});");


// submit form
element(by.css('button[type=submit]')).click();

// Here is problem 2. The following test is executed earlier
// than the following alert.
//browser.wait(protractor.ExpectedConditions.alertIsPresent(), 3000);
var alertDialog = browser.switchTo().alert();
expect(alertDialog.getText()).toEqual('Saved');
alertDialog.accept();

});


it('should click drop-down-list', function() {
// click drop-down list
element(by.css('.drop-down-list')).click();
});

最佳答案

我个人认为 browser.sleep(5000) 应该可以解决第二个问题。

如果不行你可以试试promisies

 element(by.css('button[type=submit]')).click().then(function(){
var alertDialog = browser.switchTo().alert();
expect(alertDialog.getText()).toEqual('Saved');
alertDialog.accept();
});

这应该等待 promise 得到解决(即点击提交按钮),然后执行里面的代码片段

关于angularjs - Protractor 测试的执行顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37305787/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com