量角器无法识别功能

时间:2019-07-08 17:24:19

标签: javascript node.js angularjs npm protractor

运行测试时,我收到错误消息:

browser.setlocation is not a function. 

量角器网站将browser.setLocation()列为函数,为什么它无法识别我对它的使用?

我尝试了多种访问网址的方法,例如window.location ...,但无济于事。

it('login', function() {

    browser.setLocation('http://localhost') 
        .waitForElementVisible('wrap')
        .setValue("#username", "username1") 
        .setValue("#password", "Password2"); 

    element(by.id('loginBtn')).click();
    browser.waitForAngular();

});

测试应转到登录页面,输入用户名和密码,然后单击登录

2 个答案:

答案 0 :(得分:0)

您可以使用

browser.get('website link');
element(by.css('locator for username')).sendkeys('test');
element(by.css('locator for password')).sendkeys('test');
element(by.id('locator for login button')).click();

这是访问URL并登录到应用程序的简单方法。

答案 1 :(得分:0)

首先browser.setLocation('http://localhost').waitForElementVisible('wrap')...无效的语法。

browser.setLocation方法用于使用页内导航浏览到另一页。

browser.get('http://angular.github.io/protractor/#/tutorial');
browser.setLocation('api'); // Current url is 'http://angular.github.io/protractor/#/api'

此外,我不知道waitForElementVisiblesetValue方法的作用,但是您必须调用then才能在量角器中链接方法。

如果要导航/打开页面,请使用browser.get(url)方法。

可行的解决方案:

it('login', async () => {
  await browser.get('http://localhost') 
  await browser.wait(ExpectedConditions.visibilityOf($('wrap')), 5000);
  await element(by.id("username")).sendKeys("username1");
  await element(by.id("password")).sendKeys("Password2");
  await element(by.id('loginBtn')).click();
  await browser.waitForAngular();
});