我正在测试一个元素,当用户选择一个单选按钮时,加载图像将出现在中间,并在几秒钟后不可见。当加载图像消失时,它应显示登录屏幕并执行所有其他条件。以下是我的量角器代码:
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();
这不起作用,但它通过了。我希望隐藏加载图像,直到它可见,不应执行小的登录条件。会发生什么是它执行小登录条件和下拉单击,同时图像仍然可见。感谢。
答案 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"应用程序的状态。