在量角器中初始化之前无法访问“元素”

问题描述

我正在尝试使用 Protractor 为 Angular 应用程序编写端到端测试。我正在尝试创建一个函数,该函数在访问某个元素之前等待该元素出现在页面上,但出现错误

ReferenceError: 初始化前无法访问“元素”

虽然我确实需要量角器的元素。

函数文件global.js中:

const { browser,element } = require('protractor');

const global = function () {
  this.getElementAsync = (element,waitTime) =>
    browser.wait(() => element.isPresent(),waitTime)
    .then(() => browser.wait(() => element.isdisplayed(),waitTime));
  }
    
module.exports = new global();

我在另一个文件中使用它:

const global = require('./global');
const { element } = require('protractor');
    
var someFile = function () {
  this.doWhatever = async function(sec) {
    const element = await global.getElementAsync(element(by.css('.some.css')),5000); //error is thrown here
    return element.click();
  };
}
    
module.exports = new someFile();

我愿意接受所有建议/建议。

解决方法

你在这一行有一个变量名冲突:

const element = await global.getElementAsync(element(by.css('.some.css')),5000); //error is thrown here

element(by.css('.some.css') 试图引用 const element 而不是从量角器导入的 element,因此是 ReferenceError 消息。

尝试将您的变量名称更改为其他名称,它应该可以工作。

E.x:

const someElement= await global.getElementAsync(element(by.css('.some.css')),5000);