执行套件时脚本之间超时 - Protractor Non Angular

时间:2016-01-21 22:08:29

标签: javascript protractor

我试图在套件中运行不同的规格,如下所示:

  suites:{
        homepage: '../Phonebook/specs/Navigate_URL.js',
        Login:['../Phonebook/specs/Login_Valid.js',
                '../Phonebook/specs/Validate_Home.js'],
        search: '../Phonebook/specs/SearchText.js',
        logout: '../Phonebook/specs/Logout.js',
    },

当我使用specs单独运行它们时,所有这些都运行得很好并且没有时间问题。我试图立即运行整个套件,它运行得非常好,现在,它表明再次出现了计时问题。我在每个脚本中都包含了browser.sleep(),以确保所有脚本都等到下一个脚本执行完毕。 getPageTimeout:,allScriptsTimeout:也被使用。有没有办法或任何一般方法来避免这个问题?

2 个答案:

答案 0 :(得分:1)

由于这是一个非角度应用程序,Protractor不会像使用Angular那样与它同步。测试不会那么简单,并且流程不会像测试中的Angular应用程序那样清晰自然。

为了避免任何时间问题,您需要始终“在跳跃之前”:使用browser.wait()和一组内置Expected Conditions。例如,在进行搜索之前,请等待搜索输入可见:

var EC = protractor.ExpectedConditions,
    searchInput = element(by.id("search"));
browser.wait(EC.visibilityOf(searchInput), 5000, "Search input has not become visible");

答案 1 :(得分:0)

我明白了,虽然我认为这只是一个临时解决方案,但是在下一个脚本执行之前我在每个脚本中都包含了browser.sleep,它暂时有效。

相关问题