新增e2e测试脚本,修复部分问题
This commit was merged in pull request #51.
This commit is contained in:
@@ -0,0 +1,101 @@
|
||||
/**
|
||||
* HomePage - 首页 Page Object
|
||||
* 对应页面: pages/index/index
|
||||
*/
|
||||
class HomePage {
|
||||
constructor(miniProgram) {
|
||||
this.mp = miniProgram;
|
||||
}
|
||||
|
||||
/**
|
||||
* 等待首页加载完成
|
||||
*/
|
||||
async waitForLoad() {
|
||||
const { waitForPage } = require('../helpers/automator');
|
||||
return waitForPage(this.mp, 'pages/index/index');
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取首页关键元素
|
||||
* @returns {Promise<Object>} 包含轮播图、导航等元素信息
|
||||
*/
|
||||
async getElements() {
|
||||
const page = await this.mp.currentPage();
|
||||
const elements = {};
|
||||
|
||||
try {
|
||||
// 尝试获取轮播图
|
||||
const swiperItems = await page.$$('swiper-item');
|
||||
elements.bannerCount = swiperItems ? swiperItems.length : 0;
|
||||
} catch (e) {
|
||||
elements.bannerCount = 0;
|
||||
}
|
||||
|
||||
try {
|
||||
// 获取课程列表卡片
|
||||
const courseCards = await page.$$('.course-card');
|
||||
elements.courseCardCount = courseCards ? courseCards.length : 0;
|
||||
} catch (e) {
|
||||
elements.courseCardCount = 0;
|
||||
}
|
||||
|
||||
try {
|
||||
// 获取导航按钮
|
||||
const navButtons = await page.$$('.nav-item');
|
||||
elements.navButtonCount = navButtons ? navButtons.length : 0;
|
||||
} catch (e) {
|
||||
elements.navButtonCount = 0;
|
||||
}
|
||||
|
||||
return elements;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取轮播图信息
|
||||
* @returns {Promise<Array>} 轮播图列表
|
||||
*/
|
||||
async getBanners() {
|
||||
const page = await this.mp.currentPage();
|
||||
try {
|
||||
const swiperItems = await page.$$('swiper-item');
|
||||
if (!swiperItems || swiperItems.length === 0) {
|
||||
return [];
|
||||
}
|
||||
const banners = [];
|
||||
for (let i = 0; i < swiperItems.length; i++) {
|
||||
try {
|
||||
const image = await swiperItems[i].$('image');
|
||||
if (image) {
|
||||
const src = await image.attribute('src');
|
||||
banners.push({ index: i, src });
|
||||
}
|
||||
} catch (e) {
|
||||
banners.push({ index: i, src: null });
|
||||
}
|
||||
}
|
||||
return banners;
|
||||
} catch (e) {
|
||||
return [];
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过 TabBar 切换到搜索页
|
||||
*/
|
||||
async navigateToSearch() {
|
||||
const { switchTab } = require('../helpers/automator');
|
||||
await switchTab(this.mp, 1);
|
||||
}
|
||||
|
||||
/**
|
||||
* 下拉刷新
|
||||
*/
|
||||
async pullDownRefresh() {
|
||||
const page = await this.mp.currentPage();
|
||||
// 触发下拉刷新
|
||||
await this.mp.callWxMethod('startPullDownRefresh', {});
|
||||
await this.mp.waitFor(2000);
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = HomePage;
|
||||
Reference in New Issue
Block a user