优化文件路径
This commit is contained in:
parent
23020e7825
commit
25c56b2e14
@ -1,8 +1,4 @@
|
|||||||
/**
|
const BasePage = require('./BasePage');
|
||||||
* 龙蛟IBP系统登录页面对象模型
|
|
||||||
*/
|
|
||||||
const BasePage = require('../utils/BasePage');
|
|
||||||
const { getEnv } = require('../utils/env');
|
|
||||||
|
|
||||||
class LongiLoginPage extends BasePage {
|
class LongiLoginPage extends BasePage {
|
||||||
|
|
||||||
@ -21,7 +17,7 @@ class LongiLoginPage extends BasePage {
|
|||||||
errorMessage: '.el-form-item__error, .el-form-item.is-error', // 错误消息
|
errorMessage: '.el-form-item__error, .el-form-item.is-error', // 错误消息
|
||||||
ssoLoginButton: 'button:has-text("SSO登录")' // SSO登录按钮
|
ssoLoginButton: 'button:has-text("SSO登录")' // SSO登录按钮
|
||||||
};
|
};
|
||||||
|
|
||||||
// 设置超时时间
|
// 设置超时时间
|
||||||
this.timeout = 10000;
|
this.timeout = 10000;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,7 +1,4 @@
|
|||||||
/**
|
const BasePage = require('./BasePage');
|
||||||
* 龙蛟IBP系统主页面对象模型
|
|
||||||
*/
|
|
||||||
const BasePage = require('../utils/BasePage');
|
|
||||||
const FileUtils = require('../utils/FileUtils');
|
const FileUtils = require('../utils/FileUtils');
|
||||||
|
|
||||||
class LongiMainPage extends BasePage {
|
class LongiMainPage extends BasePage {
|
||||||
@ -120,11 +117,11 @@ class LongiMainPage extends BasePage {
|
|||||||
*/
|
*/
|
||||||
async clickExpandMenu() {
|
async clickExpandMenu() {
|
||||||
const toggleButton = this.page.locator(this.selectors.menuToggle).first();
|
const toggleButton = this.page.locator(this.selectors.menuToggle).first();
|
||||||
if (!await this.waitForElement(this.selectors.menuToggle, { returnBoolean: true, firstOnly: true })) {
|
if (!await this.waitForElement(this.selectors.menuToggle, {returnBoolean: true, firstOnly: true})) {
|
||||||
console.log('菜单切换按钮不可见,尝试其他方法');
|
console.log('菜单切换按钮不可见,尝试其他方法');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
await toggleButton.click();
|
await toggleButton.click();
|
||||||
console.log('已点击展开菜单');
|
console.log('已点击展开菜单');
|
||||||
}
|
}
|
||||||
@ -556,11 +553,11 @@ class LongiMainPage extends BasePage {
|
|||||||
* @returns {Promise<boolean>} 页面是否加载成功
|
* @returns {Promise<boolean>} 页面是否加载成功
|
||||||
*/
|
*/
|
||||||
async waitForPageLoadWithRetry(menu, subMenuText = '') {
|
async waitForPageLoadWithRetry(menu, subMenuText = '') {
|
||||||
const pageName = this.getMenuPath(menu, { text: subMenuText });
|
const pageName = this.getMenuPath(menu, {text: subMenuText});
|
||||||
console.log(`等待页面 ${pageName} 数据加载...`);
|
console.log(`等待页面 ${pageName} 数据加载...`);
|
||||||
|
|
||||||
let retryCount = 0;
|
let retryCount = 0;
|
||||||
const { maxRetries, retryInterval, stabilityDelay } = this.config.pageLoad;
|
const {maxRetries, retryInterval, stabilityDelay} = this.config.pageLoad;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
while (retryCount < maxRetries) {
|
while (retryCount < maxRetries) {
|
||||||
@ -596,7 +593,7 @@ class LongiMainPage extends BasePage {
|
|||||||
*/
|
*/
|
||||||
async checkPageError(pageName) {
|
async checkPageError(pageName) {
|
||||||
const errorSelectors = [this.selectors.errorBox, this.selectors.errorMessage];
|
const errorSelectors = [this.selectors.errorBox, this.selectors.errorMessage];
|
||||||
|
|
||||||
for (const selector of errorSelectors) {
|
for (const selector of errorSelectors) {
|
||||||
const elements = await this.page.locator(selector).all();
|
const elements = await this.page.locator(selector).all();
|
||||||
if (elements.length > 0) {
|
if (elements.length > 0) {
|
||||||
@ -605,7 +602,7 @@ class LongiMainPage extends BasePage {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -616,7 +613,7 @@ class LongiMainPage extends BasePage {
|
|||||||
async closeActiveTab(pageName) {
|
async closeActiveTab(pageName) {
|
||||||
try {
|
try {
|
||||||
console.log(`🗑️ 正在关闭页面 "${pageName}" 的tab...`);
|
console.log(`🗑️ 正在关闭页面 "${pageName}" 的tab...`);
|
||||||
|
|
||||||
const activeTab = this.page.locator(this.selectors.activeTab);
|
const activeTab = this.page.locator(this.selectors.activeTab);
|
||||||
const closeButton = activeTab.locator(this.selectors.closeButton);
|
const closeButton = activeTab.locator(this.selectors.closeButton);
|
||||||
|
|
||||||
@ -656,7 +653,7 @@ class LongiMainPage extends BasePage {
|
|||||||
elements.forEach(el => el.remove());
|
elements.forEach(el => el.remove());
|
||||||
if (window.gc) window.gc();
|
if (window.gc) window.gc();
|
||||||
}, this.selectors.temporaryElements);
|
}, this.selectors.temporaryElements);
|
||||||
|
|
||||||
console.log(`🧹 执行内存回收${context ? ` - ${context}` : ''}`);
|
console.log(`🧹 执行内存回收${context ? ` - ${context}` : ''}`);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.warn('执行内存回收时出错:', error.message);
|
console.warn('执行内存回收时出错:', error.message);
|
||||||
|
|||||||
@ -1,45 +0,0 @@
|
|||||||
/**
|
|
||||||
* 环境变量工具类
|
|
||||||
* 提供环境变量的读取和类型转换功能
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取环境变量值
|
|
||||||
* @param {string} key 环境变量名
|
|
||||||
* @param {string} defaultValue 默认值
|
|
||||||
* @returns {string} 环境变量值或默认值
|
|
||||||
*/
|
|
||||||
function getEnv(key, defaultValue = '') {
|
|
||||||
return process.env[key] || defaultValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取布尔类型的环境变量值
|
|
||||||
* @param {string} key 环境变量名
|
|
||||||
* @param {boolean} defaultValue 默认值
|
|
||||||
* @returns {boolean} 环境变量的布尔值
|
|
||||||
*/
|
|
||||||
function getBoolEnv(key, defaultValue = false) {
|
|
||||||
const value = process.env[key];
|
|
||||||
if (value === undefined) return defaultValue;
|
|
||||||
return value.toLowerCase() === 'true';
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取数字类型的环境变量值
|
|
||||||
* @param {string} key 环境变量名
|
|
||||||
* @param {number} defaultValue 默认值
|
|
||||||
* @returns {number} 环境变量的数字值
|
|
||||||
*/
|
|
||||||
function getNumEnv(key, defaultValue = 0) {
|
|
||||||
const value = process.env[key];
|
|
||||||
if (value === undefined) return defaultValue;
|
|
||||||
const num = Number(value);
|
|
||||||
return isNaN(num) ? defaultValue : num;
|
|
||||||
}
|
|
||||||
|
|
||||||
module.exports = {
|
|
||||||
getEnv,
|
|
||||||
getBoolEnv,
|
|
||||||
getNumEnv
|
|
||||||
};
|
|
||||||
Loading…
Reference in New Issue
Block a user