繁体   English   中英

如何在量角器测试中使用browser.getCurrentUrl()?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM