2017-03-09 93 views
2

我开始测试一个Angular2项目,并且我想在某些测试中检索浏览器的URL,以检查重定向是否正确。有没有办法检索量角器中当前的相对url?

问题是,我可以在API中看到检索当前URL的唯一方法是webdriver.WebDriver.getCurrentUrl,但它返回绝对路径。如果由于某种原因您将来更改测试端口或主机名,这可能会很痛苦。有没有办法像browser.get那样只检索相对URL?谢谢。

+0

你的意思是你想要得到的,例如,'问题/ 42695591/IS-有-A-方式对检索最电流相对URL功能于量角器#42695591'从'http:// stackoverflow.com/questions/42695591/is-there-a-way-to-retrieve-the-current-relative-url-in-protractor#42695591'? – Andersson

+0

是@安德森,那是我的问题! –

+2

在我看来,没有理由通过拼写URL的额外工作。你应该在你的protractor.conf.js文件中指定'baseUrl:'localhost:8045'',然后使用'expect(browser.getCurrentUrl()).Be(browser.baseUrl +'/ test');'this应该让你的测试可以在多种环境中使用。 – sonhu

回答

3

为了保持简单 - 为了应对未来的变化主办&端口,你可以做到这一点。

expect(browser.getCurrentUrl()).toContain("/some/path/resource");

+0

这是更好的方法,谢谢! –

0

我不确定是否有相同的内置方法。

假设有一个URL,例如,

http://example.com/some/path/resource 

只是作为最后手段可以使用下面的代码

browser.executeScript("return '/' + window.location.href.split('/').slice(3).join('/');") 

得到公正

/some/path/resource 

browser.executeScript("return window.location.href.split('/')[window.location.href.split('/').length -1];") 

得到

resource 
相关问题