我已经看到了这个问题,但未能找到同样的工作解决方案。我是量角器的新手。请提供解决方案。 我正在使用protrator 5,chrome版本65,也使用量角器为React JS网站创建POC。
var Jasmine2HtmlReporter = require('C:\\Program Files\\nodejs\\node_modules\\protractor-jasmine2-html-reporter');
exports.config={
framework:'jasmine',
seleniumAddress:'http://localhost:4444/wd/hub',
specs:['../SpecFiles/*.js'],
capablities:{
'browserName':'chrome'
},
params:{
common: {
url: "XXXX",
userName:"XXXXXX",
password: "viktest12345",
testData: require('../ElementLocators/elements.json')
}
},
jasmineNodeOpts: {
defaultTimeoutInterval: 500000000000000000000000
},
"globals": {
"browser": false},
onPrepare: function() {
jasmine.getEnv().addReporter(
new Jasmine2HtmlReporter({
takeScreenshotsOnlyOnFailures: true,
savePath: 'target/screenshots'
})
);
}
}
test:
var waitForUrlToChangeTo = require('../globalMethods').x;
describe("Login Functionality",function()
{
beforeEach(function() {
/* originalTimeout = jasmine.DEFAULT_TIMEOUT_INTERVAL;
jasmine.DEFAULT_TIMEOUT_INTERVAL = 10000000000;*/
browser.ignoreSynchronization = true;
browser.waitForAngularEnabled(false);
browser.get(browser.params.common.url);
browser.driver.manage().window().maximize();
});
it("login Functionality with valid credentials", function () {
console.log("Login with valid credentials");
element(by.name(browser.params.common.testData.login.login_userName)).getWebElement().sendKeys(browser.params.common.userName);
browser.driver.findElement(by.name(browser.params.common.testData.login.login_password)).sendKeys(browser.params.common.password);
browser.findElement(by.buttonText(browser.params.common.testData.login.login_submit)).click();
waitForUrlToChangeTo(new RegExp(browser.params.common.testData.dashboard.url));
var pageHeading = browser.driver.findElement(by.xpath(browser.params.common.testData.dashboard.page_Heading)).getText();
expect(pageHeading).toBe("Dashboard");
});
});
我在config.js中尝试了默认超时设置,也在每个块之前,也作为describe block.none解决方案的第三个参数。请帮助我。
答案 0 :(得分:0)
根据量角器文档,量角器click / sendKeys返回
click / sendKeys命令完成后将解决的诺言。
您可以在此处尝试使用 async / await ! 例如:
it('demo test', async ()=>{
await browser.findElement(by.buttonText(browser.params.common.testData.login.login_submit)).click();
});
中了解更多信息