angular - Protractor typescript 页面对象属性未定义

标签 angular typescript jasmine angular-cli pageobjects

您好,当我在带有 Angular cli 的 Protractor typescript 中使用 POM 时,出现以下错误“无法读取未定义的属性‘sendUsername’”。我是 typescript 新手,请建议我如何解决此问题。

错误

失败:无法读取未定义的属性“sendUsername”

app.e2e-spec.ts

import { PatientInquiryPrototypePage } from './patiq-common.po';
import { LoginAdmin } from './patiq-login.po';

describe('patient-inquiry-prototype App', () => {
let page: PatientInquiryPrototypePage;
let loginAdmin: LoginAdmin;

beforeEach(() => {
page = new PatientInquiryPrototypePage();
});

it('Launch the Test URL', () => {
  page.navigateTo();
});

it('Login as Administrator', () => {

  loginAdmin.sendUsername('PILabAdmin');
  loginAdmin.sendPassword('password$123');
  loginAdmin.openHostSystem();
  loginAdmin.selectHostSystem();
  loginAdmin.openHostRole();
  loginAdmin.selectHostRole();

  });
  });

patiq-login.po.ts

import { browser, by, element, protractor, ExpectedConditions, $, $$ } from 'protractor';

export class LoginAdmin {

sendUsername(Username: string) {
    return element(by.css('[formcontrolname="username"]')).sendKeys(Username);
}

sendPassword(Password: string) {
    return element(by.css('[formcontrolname="password"]')).sendKeys(Password);
}

openHostSystem() {
    return element(by.css('[formcontrolname="hostSystem"]')).click();
}

selectHostSystem() {
    return element(by.css('[class="mat-option"]')).get(0).click();
}

openHostRole() {
    return element(by.css('[formcontrolname="hostRole"]')).click();
}

selectHostRole() {
    return element(by.css('[class="mat-option"]')).get(6).click();
}
}

最佳答案

它没有采用文件的路径而不是单个点。输入双点,这意味着它将从父级选择路径,就像

import { PatientInquiryPrototypePage } from '../patiq-common.po';
import { LoginAdmin } from '../patiq-login.po';

关于angular - Protractor typescript 页面对象属性未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45569952/

相关文章:

angular - 使用 Jasmine 在 Angular 8 中测试异步代码时如何等待?

webdriver - 仅使用 Jasmine 测试框架检查元素是否具有类

Typescript 无法为函数对象推断出正确的参数类型

angular - 应用程序遇到异常后变得无响应

javascript - 从 promise Angular 2内部设置类的全局变量

angular - 在 Angular 路由中找不到模块

angular - 在pipe()中使用catchError()在.subscribe变量处显示错误

reactjs - React with TypeScript - 类型 {...} 不可分配给类型 'Readonly<S>'

javascript - 我们应该在单元测试时使用 Angular TestBed 吗?

Javascript 将 JSON 数据解析为多个变量,将单独的记录存储在内存中