如何使用量角器获取当前 url?
how can I get the current url using protractor?
我正在使用量角器和 jasmine 测试一个网站。我想知道当前的 url 以验证测试。
我试过了
function waitForUrlToChangeTo(urlRegex) {
var currentUrl;
return browser.getCurrentUrl().then(function storeCurrentUrl(url) {
currentUrl = url;
}
).then(function waitForUrlToChangeTo() {
return browser.wait(function waitForUrlToChangeTo() {
return browser.getCurrentUrl().then(function compareCurrentUrl(url) {
return urlRegex.test(url);
});
});
}
);
}
我就是这样使用这个功能的
it('should log', function() {
//element(by.model('user.username')).sendKeys('asd');
//element(by.model('user.password')).sendKeys('asd');
element(by.linkText('Acceder')).click();
waitForUrlToChangeTo("http://localhost:9000/#/solicitudes");
});
如果您只想检查当前 URL,则使用 browser.getCurrentUrl()
:
expect(browser.getCurrentUrl()).toEqual("expectedUrl");
但是,如果您需要等到 URL 匹配某个值,请参阅答案的下一部分。
这是一个基于 Expected Conditions 作者提供的示例的工作代码:
var urlChanged = function(url) {
return function () {
return browser.getCurrentUrl().then(function(actualUrl) {
return url != actualUrl;
});
};
};
用法:
element(by.linkText('Acceder')).click();
browser.wait(urlChanged("http://localhost:9000/#/solicitudes"), 5000);
Alecxe 你的回答很有帮助。
但是你不能只写代码吗:
expect(browser.getCurrentUrl()).toEqual('whateverbrowseryouarexpectingtobein');
如果失败了,那你就知道你走错地方了。
自 Protractor 4.0.0 起,您现在可以使用预期条件来了解 url 何时更改。
const EC = protractor.ExpectedConditions;
browser.wait(EC.urlContains('my-url'), 5000);
我找到的答案来自,我没有真正的功劳。但以防万一。
我正在使用量角器和 jasmine 测试一个网站。我想知道当前的 url 以验证测试。
我试过了
function waitForUrlToChangeTo(urlRegex) {
var currentUrl;
return browser.getCurrentUrl().then(function storeCurrentUrl(url) {
currentUrl = url;
}
).then(function waitForUrlToChangeTo() {
return browser.wait(function waitForUrlToChangeTo() {
return browser.getCurrentUrl().then(function compareCurrentUrl(url) {
return urlRegex.test(url);
});
});
}
);
}
我就是这样使用这个功能的
it('should log', function() {
//element(by.model('user.username')).sendKeys('asd');
//element(by.model('user.password')).sendKeys('asd');
element(by.linkText('Acceder')).click();
waitForUrlToChangeTo("http://localhost:9000/#/solicitudes");
});
如果您只想检查当前 URL,则使用 browser.getCurrentUrl()
:
expect(browser.getCurrentUrl()).toEqual("expectedUrl");
但是,如果您需要等到 URL 匹配某个值,请参阅答案的下一部分。
这是一个基于 Expected Conditions 作者提供的示例的工作代码:
var urlChanged = function(url) {
return function () {
return browser.getCurrentUrl().then(function(actualUrl) {
return url != actualUrl;
});
};
};
用法:
element(by.linkText('Acceder')).click();
browser.wait(urlChanged("http://localhost:9000/#/solicitudes"), 5000);
Alecxe 你的回答很有帮助。
但是你不能只写代码吗:
expect(browser.getCurrentUrl()).toEqual('whateverbrowseryouarexpectingtobein');
如果失败了,那你就知道你走错地方了。
自 Protractor 4.0.0 起,您现在可以使用预期条件来了解 url 何时更改。
const EC = protractor.ExpectedConditions;
browser.wait(EC.urlContains('my-url'), 5000);
我找到的答案来自