【问题标题】:How to say protractor to wait till page loads?如何说量角器等到页面加载?
【发布时间】:2015-12-13 04:12:27
【问题描述】:

我的应用程序需要一些页面来分页登录页面。所以量角器试图在页面加载之前输入用户名。所以我需要说量角器等到登录页面加载。

能否请您帮我,我需要使用什么命令以及我需要在哪里使用?(请修改我的代码以添加等待命令)

我的 onPrepare 和 beforeeach 函数的 PFB

onPrepare: function() {  
browser.driver.manage().window().maximize();
jasmine.getEnv().addReporter(new HtmlReporter({

})
}

beforeEach(function() {
       browser.get('https://accounts.google.com/');
       //browser.manage().timeouts().pageLoadTimeout(30000);
       //browser.manage().timeouts().implicitlyWait(5000);
        //browser.sleep( 10000 );
        //browser.waitForAngular();
  });

我使用了那些注释功能,但它对我不起作用。

请指导我。提前谢谢。

【问题讨论】:

    标签: angularjs node.js automation jasmine protractor


    【解决方案1】:

    使用等待命令:browser.driver.wait(condition, timeout);

    onPrepare: function() {  
        browser.driver.manage().window().maximize();
        jasmine.getEnv().addReporter(new HtmlReporter({
        });
    }
    
    beforeEach(function() {
           browser.driver.get('https://accounts.google.com/');
           return browser.driver.wait(function() {
                return browser.driver.getCurrentUrl().then(function (url) {
                    return url.indexOf('https://accounts.google.com/') > -1;
                });
            }, 5000);
            //whatever you want after
      });
    

    您可以等待任何类似的情况。 此外,google f.e 不是 Angular 页面,因此您应该使用: browser.driver.get 而不是量角器 browser.get, 否则它将等待页面上的角度。

    【讨论】:

      【解决方案2】:

      假设你想点击Get Started按钮,wait按钮变成clickable

      var EC = protractor.ExpectedConditions;
      
      var getStarted = element(by.css('button[title="Get started"]'));
      browser.wait(EC.elementToBeClickable(getStarted), 5000);
      getStarted.click();
      

      【讨论】:

        猜你喜欢
        • 2018-03-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-10-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多