当前位置: 首页 > 知识库问答 >
问题:

量角器系列规格执行

潘阳舒
2023-03-14

配置:

 exports.config = {
  seleniumAddress: 'http://localhost:4444/wd/hub',
    specs: [
        'googleSpec.js',
        'forgotPasswordPageTestSuite.js'
        ],
    capabilities:
    {
        browserName: 'chrome'
        //shardTestFiles: true,
        //maxInstances: 2
    },
    jasmineNodeOpts: {
        defaultTimeoutInterval: 360000
    }
}

规范1:

describe("Google Spec", function()
{

    browser.ignoreSynchronization = true;
    browser.get('http://google.com');

    browser.wait(function () {
        return element(by.name('q')).isDisplayed();
    }, 15000);

    it('Verify search inout is presented', function()
    {
        expect(browser.isElementPresent(element(by.name('q'))).toBe(true);
    });
});

规范2:

describe("Yandex spec", function()
{
    browser.ignoreSynchronization = true;
    browser.get('http://www.yandex.ru');

    browser.wait(function () {
             return element(by.id('text')).isDisplayed();
        }, 15000);
    });

    it('Verify that search input is presented', function()
    {
        expect(browser.isElementPresent(by.id('text'))).toBe(true);
    });
});
shardTestFiles: true,
maxInstances: 2

进程已完成,退出代码为%1

在我的实际测试中,当我的规范与我提供的相似时,我也有同样的问题。当我看到由于某种原因真正发生了什么时,第二个规范的get(url)方法在第一个规范完成之前就开始执行了。我想我错过了一些核心和重要的东西,谁能给我指指点点吗?)

共有1个答案

景岳
2023-03-14

我认为,使用此设置,无法保证protractor会执行wait()调用并在执行it()之前等待结果。

如果您希望某些代码在规范中的所有it块之前执行,请使用beforeAll()(内置于Jasmine 2中,可作为Jasmine 1.x的第三方使用):

describe("Google Spec", function()
{
    beforeAll(function () {
        browser.ignoreSynchronization = true;
        browser.get('http://google.com');

        browser.wait(function () {
            return element(by.name('q')).isDisplayed();
        }, 15000);
    });

    it('Verify search inout is presented', function()
    {
        expect(browser.isElementPresent(element(by.name('q'))).toBe(true);
    });
});

还请注意,您可以使用预期条件来简化wait()块:

var EC = protractor.ExpectedConditions;
var elm = element(by.name('q'));

browser.wait(EC.visibilityOf(elm), 15000);
 类似资料:
  • 问题内容: 我最近使用量角器选择了一个项目。 我很难理解 套件和规格之间 的 区别 。当我运行测试的文件夹后,我也遇到了套件的问题,该文件夹运行后,我运行了另一个测试文件夹,但它未能通过所有测试。下面列出的是任何帮助或帮助,都非常有用。 例: 问题答案: 套件对于组织测试非常有用。 实际上,问题归结为套件和测试用例之间的差异。引用维基百科“测试套件”的定义: 旨在用于测试软件程序以表明其具有某些特

  • 我的量角器。conf.js(相关部分) 如果我在正常模式下运行量角器,所有测试都通过了。以及如果我用map.click()替换这段代码。 编辑:我以前没有添加错误,因为我认为它们在我的情况下没有用。但他们在这里,因为有人认为他们是相关的。 失败: 1) 量角器演示应用程序位置排序应在距地图中心不同的距离上创建2个位置消息:预期0为2。堆栈:错误:对象的预期失败。它(/home/piliponful

  • 问题内容: 问题描述: 我们最近在量角器端到端测试中打开应用程序中的页面之一时遇到了这个臭名昭著的错误: 失败:超时,等待异步Angular任务在50秒后完成。这可能是因为当前页面不是Angular应用程序。 这是在我们的一项测试中的一次通话中发生的: 而且,对我们的案例来说很奇怪的是, 该错误未在Angular Web应用程序的任何其他页面上引发 -Protractor与Angular同步而没有

  • 我维护了一个复杂的Angular(1.5.x)应用程序,该应用程序正在使用Protractor(2.5.x)进行E2E测试。我在使用这种方法时遇到了一个问题,主要表现在测试似乎不可靠。在一个拉请求中运行良好的测试在另一个请求中失败。这涉及简单的定位器,例如by.linkTest(…)。我调试了失败的测试,应用程序位于正确的页面上,链接存在并且可以访问。 还有人遇到过这些一致性问题吗?知道原因或解决

  • 我正在使用量角器框架&jasmine-allure-reporter创建报告并截图。 是否有为每次测试自定义截图名称的规定?目前,它有一些随机数作为映像名称(),而我想要类似的东西()。那有可能吗?有人能帮我一下吗?

  • 问题内容: 在升级到Protractor 4.0.0并由于重大更改调整配置后,我们终于启动了测试。 现在的问题是,在测试运行后,它失败并显示: 如何调试此问题并了解是什么原因造成的? 试图在“疑难解答”模式下运行量角器: 但是得到了完全相同的输出,没有有关错误的详细信息。 问题答案: 目前,此问题已得到解决,应该很快就会有一个热修复。快速修补程序(在发布此修补程序之前)是更改node_module