2017-03-09 122 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 
相關問題