gpt4 book ai didi

javascript - Protractor - X 不是函数

转载 作者:行者123 更新时间:2023-12-03 01:06:59 26 4
gpt4 key购买 nike

在 Protractor 中,我尝试从规范文件内的另一个页面运行函数。

我的规范文件:

let TablePage = require("./../pages/TablePage");
let table_page = new TablePage();
let protractor = require("protractor");
let browser = protractor.browser;

describe('Login', function() {
beforeEach(function() {
browser.ignoreSynchronization = true;
browser.waitForAngular();
jasmine.DEFAULT_TIMEOUT_INTERVAL = 10000;
browser.get("/budget");
});

it('should get values from list', function(){
table_page.getPriceValuesFromList();
});

我获得该函数的其他文件形式(TablePage.js):

let protractor = require("protractor");
let browser = protractor.browser;
let number = 0;
let prices = [];

let TablePage = (function () {
function TablePage() {

}

TablePage.prototype.getPriceValuesFromList = function () {
for (number = 1; number < 100; number++) {
let locator = '//*[@id="root"]/main/section/table/tbody/tr[' + number + ']/td[3]/div[2]';
browser.findElement(By.xpath(locator)).then(function (err) {
prices[number] = element(By.xpath(locator)).getText();
console.log(prices[number])
}, function (err) {
if (err) {
break;
}
})
}
};

return TablePage;

});
module.exports = TablePage;

我收到错误:table_page.getPriceValuesFromList 不是函数

你知道出了什么问题吗?我在另一个项目中就是这样做的,并且有效。真正的typeof()这个函数是未定义的

您还可以检查该函数是否有效 - 它应该从表的一行获取值,将其保存在数组中并转到下一行,直到找不到行内的值 - 保存列中的值

最佳答案

有几行不应该出现在那里。 TablePage 应定义如下:

function TablePage() { }

// Removed lines which were here.

TablePage.prototype.getPriceValuesFromList = function () {
for (number = 1; number < 100; number++) {
let locator = '//*[@id="root"]/main/section/table/tbody/tr[' + number + ']/td[3]/div[2]';
browser.findElement(By.xpath(locator)).then(function (err) {
prices[number] = element(By.xpath(locator)).getText();
console.log(prices[number])
}, function (err) {
if (err) {
break;
}
})
}
};

// And removed the return TablePage();

作为一个对象东方主义者,我更喜欢使用类来实现:

class TablePage {

getPriceValuesFromList() {
for (number = 1; number < 100; number++) {
let locator = '//*[@id="root"]/main/section/table/tbody/tr[' + number + ']/td[3]/div[2]';
browser.findElement(By.xpath(locator)).then(function (err) {
prices[number] = element(By.xpath(locator)).getText();
console.log(prices[number])
}, function (err) {
if (err) {
break;
}
})
}
};

};

关于javascript - Protractor - X 不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52353255/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com