问题描述
我正在尝试使用 Protractor 为 Angular 应用程序编写端到端测试。我正在尝试创建一个函数,该函数在访问某个元素之前等待该元素出现在页面上,但出现错误:
ReferenceError: 初始化前无法访问“元素”
虽然我确实需要量角器的元素。
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);