![](/img/trans.png)
[英]Protractor browser.getCurrentUrl() is not working on route change
[英]How to use browser.getCurrentUrl() in a protractor test?
今天我一直在努力使用这些Protractor代码:
element(by.linkText("People")).click();
browser.waitForAngular();
var url = browser.getCurrentUrl();
...
在waitForAngular()
语句之后放置getCurrentUrl
似乎总是失败。
错误输出太模糊了:
UnknownError:javascript错误:在等待结果时卸载文档
那么,点击超链接并检查新网址的正确方法是什么?
这是我的测试:
如果在点击链接之前我得到了getCurrentUrl()
,那么
it('can visit people page', function () {
var url = browser.getCurrentUrl();
element(by.linkText("People")).click();
expect(true).toBe(true);
});
测试将通过。
如果在点击链接后我getCurrentUrl()
,
it('can visit people page', function () {
var url = browser.getCurrentUrl();
element(by.linkText("People")).click();
expect(true).toBe(true);
url = browser.getCurrentUrl();
});
Protractor中出现错误,上面有UnknownError
输出。 什么地方出了错?
而不是waitForAngular()
调用, 等待URL更改 :
browser.wait(function() {
return browser.getCurrentUrl().then(function(url) {
return /index/.test(url);
});
}, 10000, "URL hasn't changed");
最初由@juliemr在UnknownError上建议:javascript错误:在等待结果时卸载文档 。
这段代码正常工作
var handlePromise = browser.driver.getAllWindowHandles();
handlePromise.then(function (handles) {
// parentHandle = handles[0];
var popUpHandle = handles[1];
// Change to new handle
browser.driver.switchTo().window(popUpHandle).then(function() {
return browser.getCurrentUrl().then(function(url) {
console.log("URL= "+ url);
});
})
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.