【问题标题】:Protractor: Check for element present while upload is in progress量角器:在上传过程中检查元素是否存在
【发布时间】:2015-05-14 17:58:52
【问题描述】:

我正在使用量角器来自动化 AngularJS 应用程序。在某些情况下,我需要使用浏览按钮上传图片,并在上传过程中检查进度条是否存在。

我正在使用以下代码来实现相同的目的:

element(locator).sendKeys(pathOfTheImage);
expect(element(locatorOfProgressBar).isPresent()).toBeTruthy();

这里的问题是——尽管有进度条,但断言总是失败,因为element(locator).sendKeys(pathOfTheImage); 命令仍在进行中,并且没有返回任何内容以继续执行下一个命令,即断言点。

我尝试过关闭同步但没有成功:

browser.ignoreSynchronization = true;

这个问题有什么解决办法吗?如何在不等待 sendKeys 命令成功的情况下继续执行下一个命令?

【问题讨论】:

    标签: javascript node.js jasmine protractor webdriverjs


    【解决方案1】:

    我在捕捉中间进度动画时遇到了类似的问题。

    您必须将browser.ignoreSynchronization 设置为true(这有助于不要等待角度稳定下来)并使用browser.wait() 明确等待动画to become visible

    element(locator).sendKeys(pathOfTheImage);
    browser.ignoreSynchronization = true;
    
    var EC = protractor.ExpectedConditions;
    browser.wait(EC.visibilityOf(locatorOfProgressBar), 5000, "No progress animation is visible");
    

    之后别忘了将ignoreSynchronization 恢复为false

    【讨论】:

    • 在我的情况下 locatorOfProgressBar 仍然没有找到,同时正在上传。我使用了你建议的技术。
    • @Mfsi.AbhishekSwain 感谢您的更新,有没有办法重现您的问题? (如果网站是公开的)
    猜你喜欢
    • 2016-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-30
    • 1970-01-01
    • 2017-05-26
    相关资源
    最近更新 更多