簡體   English   中英

如何使用量角器獲取當前網址?

[英]how can I get the current url using protractor?

我正在使用量角器和茉莉花來測試一個網站。 我想知道當前的網址,以驗證測試。

我試過了

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匹配某個值,請參閱答案的下一部分。


以下是基於預期條件作者提供的示例的工作代碼:

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開始,您現在可以使用預期條件來了解您的網址何時更改。

const EC = protractor.ExpectedConditions;
browser.wait(EC.urlContains('my-url'), 5000);

我找到的asnwer來自這個 ,我沒有真正的功勞。 但以防萬一它有所幫助。

Protractor- Generic等待URL改變

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM