如何确保元素不可见并继续处理量角器中的下一个条件

时间:2016-01-21 00:21:43

标签: javascript testing protractor end-to-end

我正在测试一个元素,当用户选择一个单选按钮时,加载图像将出现在中间,并在几秒钟后不可见。当加载图像消失时,它应显示登录屏幕并执行所有其他条件。以下是我的量角器代码:

it('Displays the small login screen', function () {
    var loadpanel = element(by.id("loadingimage"));
    var el = loadpanel;
    browser.driver.wait(protractor.until.elementIsNotVisible(el));
    smallLogin = element(by.id('loginScreen'));
    browser.wait(EC.presenceOf(smallLogin), 30000);
    expect(smallLogin.isPresent()).toBe(true);
    element(by.id('dropdown')).click();

这不起作用,但它通过了。我希望隐藏加载图像,直到它可见,不应执行小的登录条件。会发生什么是它执行小登录条件和下拉单击,同时图像仍然可见。感谢。

1 个答案:

答案 0 :(得分:1)

您要使用的预期条件是invisibilityOf

var EC = protractor.ExpectedConditions;

// select a radiobutton 

var loadpanel = element(by.id("loadingimage"));
browser.wait(EC.invisibilityOf(loadpanel), 5000);

var smallLogin = element(by.id('loginScreen'));
expect(browser.isElementPresent(smallLogin)).toBe(true);

element(by.id('dropdown')).click();

此外,在类似的情况下,在测试内部Angular应用程序时,我还记得在测试之前还必须将ignoreSynchronization设置为true,然后按顺序将其设置为false抓住'#34; loading"应用程序的状态。