javascript - 如何确保元素不可见并继续 Protractor 中的下一个条件

标签 javascript testing protractor end-to-end

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

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();

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

最佳答案

您要使用的预期条件是 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 之后才能捕获应用程序的“加载”状态。

关于javascript - 如何确保元素不可见并继续 Protractor 中的下一个条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34913220/

相关文章:

javascript - 进度旋转器

javascript - Python3 执行 Javascript

testing - 如何将这些测试放在单独的文件中?

testing - 测试命令行工具的最佳方式?

firefox - Selenium 无法单击固定页脚下的复选框

javascript - 在 Firefox 中, Protractor 在移动到下一个 block 之前不会等待页面加载

node.js - Selenium 网络驱动程序 : Connection refused (Connection refused)

Javascript 表单验证 onSubmit 未触发

javascript - 使用 jQuery 选择器遍历 DOM 元素

javascript - 无法使用 Protractor 在搜索中选择特定结果 - AngularJS