我是量角器的新手。最初在构建我的代码时,我使用了多个,但后来我将所有内容都移到了一个中,现在我的代码看起来像这样:
'/var/www/www-root/data/www/mydomain.com'
但不知何故,当我运行我的代码时,我收到此错误,我不知道如何解决它。
var UI = require('./../ui.js');
var co = require('co');
var ui = new UI();
describe("MapFeedback: address-no longer exists", function() {
ui.setSmallScreenSize();
// ui.testLogger(100);
it("test", co.wrap(function*() {
yield browser.get(ui.createStartLink());
yield ui.PLACE_PROBLEM.click();
expect(browser.getCurrentUrl()).toContain("report_place");
yield ui.REPORT_PLACE_INAPPROPRITATE.click();
expect(browser.getCurrentUrl()).toContain("select_place_content/place_content");
yield ui.zoomIn(18.5);
//its clicking the way to early before the zoomIn is performed.
var elmOK = element(By.css('button[ng-click="doneSelectObject(selectedObject)"]'));
yield ui.waitFor(protractor.ExpectedConditions.elementToBeClickable(elmOK));
yield elmOK.click();
expect(browser.getCurrentUrl()).toContain("place_content");
yield ui.RADIOBOX_OTHER.click();
yield ui.TEXTBOX_PLACE_DETAILS.sendKeys('TEST');
yield ui.SUBMIT.click();
expect(browser.getCurrentUrl()).toContain("submit");
yield ui.waitSubmit();
expect(yield element(By.css('div[ng-show="mapFeedBack.submitState==\'success\'"]')).isDisplayed()).toBeTruthy();
}));
});
如何确保后续代码仅在ui.zoomin()完成后运行。
答案 0 :(得分:0)
在完成执行完成之前,Jasmine超时时会看到错误
增加量角器conf.js中的超时设置
timeout: 50000,
或者,如果您只想为此规范执行超时更改
this.timeout(50000);
为了确保代码的后半部分仅在UI.zoomin()
完成后运行,它取决于UI.zoomin()
是否返回promise / callback。如果是,则必须链接后续命令
如果UI.zoomin()
包含webdriverJs命令,它们将自动放入webdriver控制流程中。