量角器/Jasmine错误:超时-在Jasmine.DEFAULT\u Timeout\u INTERVAL指定的超时内未调用异步回调

量角器/Jasmine错误:超时-在Jasmine.DEFAULT\u Timeout\u INTERVAL指定的超时内未调用异步回调,jasmine,protractor,Jasmine,Protractor,我遇到了这个问题,我执行量角器测试时发现它失败了。现在的问题不是实际的功能失败,而是默认的超时时间间隔。代码运行良好,在网页上执行所有操作,并且在您希望出现绿点时出错 在任何人将其标记为重复之前,我只想告诉大家,我已经尝试了下面的方法来回答其他类似问题 在“it”块中包含参数,并在测试后调用该参数 将conf.js文件中的默认超时时间间隔更改为30秒 尝试在最后一个函数中使用Async/await来等待承诺得到解决 我不仅想找到这个问题的答案,而且如果有人能给我解释一下量角器到底想表达什么。对于

我遇到了这个问题,我执行量角器测试时发现它失败了。现在的问题不是实际的功能失败,而是默认的超时时间间隔。代码运行良好,在网页上执行所有操作,并且在您希望出现绿点时出错

在任何人将其标记为重复之前,我只想告诉大家,我已经尝试了下面的方法来回答其他类似问题

  • 在“it”块中包含参数,并在测试后调用该参数
  • 将conf.js文件中的默认超时时间间隔更改为30秒
  • 尝试在最后一个函数中使用Async/await来等待承诺得到解决
  • 我不仅想找到这个问题的答案,而且如果有人能给我解释一下量角器到底想表达什么。对于我这个JavaScript和量角器的新手来说,这似乎是一条非常模糊的信息

    以下是我的规范文件:

    describe("Validating Booking for JetBlue WebApplication", function(){
    
    
        var firstPage = require("../PageLogic/jetBlueHomePage.js");
        it("Validating One Way Booking", function(pleaserun){
    
            firstPage.OneWayTrip();
            firstPage.EnterFromCity("California");
            firstPage.EnterToCity("New York");
            firstPage.SelectDepartureDate();
            firstPage.searchFlights();
            pleaserun();
        });
    
    });
    
    下面是我的页面文件:

    var homePage = function(){
    
        this.OneWayTrip = function(){
            element(by.xpath("//label[text()=' One-way ']/parent::jb-radio/div")).click();
        }
    
        this.EnterFromCity = function(FromCityName){
            element(by.xpath("//input[@placeholder='Where from?']")).clear();
            element(by.xpath("//input[@placeholder='Where from?']")).sendKeys(FromCityName);
            browser.sleep(3000);
            element(by.xpath("//ul[@id='listbox']/li[1]")).click();
        }
    
        this.EnterToCity = function(ToCityName){
            element(by.xpath("//input[@placeholder='Where to?']")).clear();
            element(by.xpath("//input[@placeholder='Where to?']")).sendKeys(ToCityName);
            browser.sleep(3000);
            element(by.xpath("//ul[@id='listbox']/li[1]")).click();
            browser.sleep(3000);
        }
    
        this.SelectDepartureDate = function(){
            element(by.xpath("//input[@placeholder='Select Date']")).click();
            browser.sleep(3000);
            element(by.xpath("//span[text()=' 24 ']")).click();
    
        }
    
        this.NumberOfPassengers = function(){
            element(by.xpath("//button[@pax='traveler-selector']")).click();
    
        }
    
        this.searchFlights = async function(){
            await element(by.buttonText('Search flights')).click();    
        }
    
    };
    
    module.exports = new homePage();
    
    下面是Conf.js文件:

    exports.config = {
        directConnect: true,
        specs:["TestSpecs/jetBlueBookingTest.js"],
        onPrepare: function(){
            browser.get("https://www.jetblue.com/");
            browser.manage().window().maximize();
        },
        jasmineNodeOpts: {
            showColors: true,
            defaultTimeoutInterval: 30000,
            isVerbose: true,
            includeStackTrace: true,
        }
    };
    

    正在寻求所有量角器专业人士的帮助,以帮助我获得此解决方案,并希望让我理解此概念。

    此消息表示在浏览器中运行了异步脚本,并且在预期的时间限制内未返回结果。如果您可以共享完整的错误堆栈,这将非常有用,根本原因可能会在其中更深入地提到

    什么是
    plesserun()
    。更新相同的代码量角器处理承诺的默认方式称为控制流,您当前正在使用该控制流。启用控制流时不应使用
    async/await
    ,因为这可能导致意外行为。你能确认在30秒默认超时时间仍在使用的情况下删除async/Wait时看到了相同的行为吗?Hi Madhan,从这个答案中引用了它:嗨DublinDev,嗨,谢谢你的提示。我尝试过这种方法,但今天奏效了。但前几天我也试着做同样的事情,但它不起作用,这就是为什么我还添加了wait/async。如果你能帮助我了解在什么时候使用哪一个,那就太好了。