如何说量角器等到页面加载?
Posted
技术标签:
【中文标题】如何说量角器等到页面加载?【英文标题】: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();
);
我使用了那些注释功能,但它对我不起作用。
请指导我。提前谢谢。
【问题讨论】:
【参考方案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();
【讨论】:
以上是关于如何说量角器等到页面加载?的主要内容,如果未能解决你的问题,请参考以下文章
如何让jquery在页面没加载完就可以执行,每次要等到整个hmtl加载完才可以执行jquery,这样很慢
browser.executeScript(return window.document.readyState)未在量角器中得到解决