我开始测试一个Angular2项目,并且我想在某些测试中检索浏览器的URL,以检查重定向是否正确。有没有办法检索量角器中当前的相对url?
问题是,我可以在API中看到检索当前URL的唯一方法是webdriver.WebDriver.getCurrentUrl,但它返回绝对路径。如果由于某种原因您将来更改测试端口或主机名,这可能会很痛苦。有没有办法像browser.get那样只检索相对URL?谢谢。
我开始测试一个Angular2项目,并且我想在某些测试中检索浏览器的URL,以检查重定向是否正确。有没有办法检索量角器中当前的相对url?
问题是,我可以在API中看到检索当前URL的唯一方法是webdriver.WebDriver.getCurrentUrl,但它返回绝对路径。如果由于某种原因您将来更改测试端口或主机名,这可能会很痛苦。有没有办法像browser.get那样只检索相对URL?谢谢。
为了保持简单 - 为了应对未来的变化主办&端口,你可以做到这一点。
expect(browser.getCurrentUrl()).toContain("/some/path/resource");
这是更好的方法,谢谢! –
我不确定是否有相同的内置方法。
假设有一个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
你的意思是你想要得到的,例如,'问题/ 42695591/IS-有-A-方式对检索最电流相对URL功能于量角器#42695591'从'http:// stackoverflow.com/questions/42695591/is-there-a-way-to-retrieve-the-current-relative-url-in-protractor#42695591'? – Andersson
是@安德森,那是我的问题! –
在我看来,没有理由通过拼写URL的额外工作。你应该在你的protractor.conf.js文件中指定'baseUrl:'localhost:8045'',然后使用'expect(browser.getCurrentUrl()).Be(browser.baseUrl +'/ test');'this应该让你的测试可以在多种环境中使用。 – sonhu