如何避免"Error: Timeout - Async callback was not invoked within timeout specified by jasmine.DEFAULT_TIM



我已经看到了这个问题,但未能获得相同的工作解决方案。我是量角器的新手。请提供解决方案。我正在使用量角器 5,chrome 版本 65,也使用量角器为 React JS 网站创建 POC。

 var Jasmine2HtmlReporter = require('C:\Program Files\nodejs\node_modules\protractor-jasmine2-html-reporter');
exports.config={
    framework:'jasmine',
    seleniumAddress:'http://localhost:4444/wd/hub',
    specs:['../SpecFiles/*.js'],
    capablities:{
       'browserName':'chrome'
    },
    params:{
        common: {
            url: "XXXX",
            userName:"XXXXXX",
            password: "viktest12345",
            testData: require('../ElementLocators/elements.json')
        }
    },
    jasmineNodeOpts: {
        defaultTimeoutInterval: 500000000000000000000000
    },
    "globals": {
        "browser": false},
    onPrepare: function() {
        jasmine.getEnv().addReporter(
            new Jasmine2HtmlReporter({
                takeScreenshotsOnlyOnFailures: true,
                savePath: 'target/screenshots'
            })
        );
    }
}
test:

var waitForUrlToChangeTo = require('../globalMethods').x;
describe("Login Functionality",function()
{
    beforeEach(function() {
/*      originalTimeout = jasmine.DEFAULT_TIMEOUT_INTERVAL;
        jasmine.DEFAULT_TIMEOUT_INTERVAL = 10000000000;*/
        browser.ignoreSynchronization = true;
        browser.waitForAngularEnabled(false);
        browser.get(browser.params.common.url);
        browser.driver.manage().window().maximize();
    });
    it("login Functionality with valid credentials", function () {
        console.log("Login with valid credentials");
        element(by.name(browser.params.common.testData.login.login_userName)).getWebElement().sendKeys(browser.params.common.userName);
        browser.driver.findElement(by.name(browser.params.common.testData.login.login_password)).sendKeys(browser.params.common.password);
        browser.findElement(by.buttonText(browser.params.common.testData.login.login_submit)).click();
        waitForUrlToChangeTo(new RegExp(browser.params.common.testData.dashboard.url));
        var pageHeading = browser.driver.findElement(by.xpath(browser.params.common.testData.dashboard.page_Heading)).getText();
        expect(pageHeading).toBe("Dashboard");
        });
});

我在config.js中尝试了默认超时设置,也在每个块之前,也作为描述块的第三个参数。请帮助我。

根据量角器文档,量角器单击/发送键返回

单击

/发送键命令完成后将解析的承诺。

您可以尝试在此处使用异步/等待!例如:

it('demo test', async ()=>{
  await browser.findElement(by.buttonText(browser.params.common.testData.login.login_submit)).click();
 });

从Protrator文档中阅读更多信息

相关内容

  • 没有找到相关文章

最新更新