我第一次参加E2E考试。我正在尝试消化别人的量角器测试。
问题:有很多browser.driver.sleep
,这似乎很脆弱。
目标:不使用browser.driver.sleep
问题: browser.driver.sleep
有什么更好的方法?像承诺或我不知道的东西那样脆弱的东西大声笑?
var config = require('../../protractor.conf.js').config;
describe('this Homepage Body Tests', function(){
browser.driver.get(config.homepageUrl);
it("should open find a clinic page", function(){
// page loads :: want to fix this random wait interval
browser.driver.sleep(2000);
browser.ignoreSynchronization = true;
var string = 'clinic';
var main = '.search-large-text';
var link = element(by.cssContainingText('.submenu li a', string));
link.click().then(function() {
// page reloads :: want to fix this random wait interval
browser.driver.sleep(3000);
var title = element(by.cssContainingText(main, string));
expect(title.getText()).toBe(string);
});
});
});
答案 0 :(得分:11)
由于启用了ignoreSynchronization
,因此您无法使用waitForAngular()
,这可以作为角点测试的解决方案。
这里更好的解决方案是设置页面加载超时:
browser.manage().timeouts().pageLoadTimeout(10000); // 10 seconds
在明确的等待和超时上另见这些相关的线程: