怎么说量角器等到页面加载?

时间:2015-09-16 14:04:37

标签: angularjs node.js automation jasmine protractor

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

你能帮我解决一下我需要使用哪个命令以及我需要使用的命令吗?(请修改我的代码以添加wait命令)

我的onPrepare和之前函数的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();
  });

我使用了这些注释函数,但它对我不起作用。

请提前指导我。谢谢。

2 个答案:

答案 0 :(得分:3)

使用wait命令: 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
  });

你可以等待任何类似的情况。 此外,谷歌f.e不是一个角度页面,所以你应该使用: browser.driver.get 而不是量角器 browser.get , 或者它会在页面上等待角度。

答案 1 :(得分: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();