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

标签 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',
    },

当我使用规范单独运行它们时,它们都运行得非常好,没有计时问题。我尝试立即运行整个套件,它运行得非常好,现在,它表明再次存在计时问题。我在每个脚本中都包含了 browser.sleep() ,这样只是为了确保所有脚本都会等到下一个脚本被执行。 getPageTimeout:, allScriptsTimeout: 也被使用。有什么方法或任何通用方法可以避免这个问题吗?

最佳答案

由于这是一个正在测试的非 Angular 应用程序,因此 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");

关于javascript - 执行套件时脚本之间超时 - Protractor Non Angular,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34935290/

相关文章:

javascript - Protractor 函数助手生成相同的东西

javascript - 保存自定义信息的 DOM 元素

javascript - 为什么一个函数在满数组时比在空数组时工作得更快

javascript - 如何让我的组件返回其自身的序列化?

node.js - Protractor 在 Centos 上打开 Chrome 驱动程序超时

javascript - 元素不可见错误(无法单击元素)

javascript - 使用Md-select时,如何在 Protractor 中下拉列表?

angular - Protractor @types 抛出很多错误

javascript - 如何在放大谷歌图表后停止默认字体大小

javascript - 无需服务器的 Cordova/PhoneGap 推送通知