# BooksPageSettings **Repository Path**: scenario-samples/books-page-settings ## Basic Information - **Project Name**: BooksPageSettings - **Description**: 【鸿蒙 Harmony Next 示例 代码】本示例基于DevEco Testing Hypium,使用Python语言编写UI自动化测试脚本,对华为阅读的页面设置进行测试。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-26 - **Last Updated**: 2025-11-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 基于Hypium框架实现阅读类应用的页面设置 ## 场景介绍 翻页形式、字体设置、对齐方式和阅读背景等页面设置是新闻阅读类应用的高频使用场景。 本示例基于[DevEco Testing Hypium](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/hypium-python-guidelines),使用Python语言编写UI自动化测试脚本,对华为阅读的页面设置进行测试。 ## 效果预览 ## 实现思路 1. 使用capture_screen获取调整字体之前和之后的截图,借助check_image_exist对比设置前后的图片,从而检查调整字体之后是否发生了变化。 ```Python # 获取调整字体前的页面 self.driver.capture_screen('resource/images/before_set_font.jpeg') # 获取调整字体后的页面 self.driver.capture_screen('resource/images/after_set_font.jpeg') CheckPoint('检测点12.设置前后图片比对') # 对比设置前后的图片 self.driver.check_image_exist('resource/images/before_set_font.jpeg', expect_exist=False) self.driver.check_image_exist('resource/images/after_set_font.jpeg', expect_exist=True) ``` 2. 借助get_component_property获取type为Toggle的checked属性值。 ```Python checked_set = self.driver.get_component_property(BY.type('Toggle'), "checked") ``` 3. 借助cv2.absdiff计算两张图片的像素级绝对差异,使用cvt2.cvtColor将差异图转成灰度图,再利用cv2.countNonZero统计灰度图中非零像素的个数,从而来衡量两张图片的差异程度。 ```Python diff = cv2.absdiff(img1, img2) gray = cv2.cvtColor(diff, cv2.COLOR_BGR2GRAY) non_zero = cv2.countNonZero(gray) h, w = gray.shape change_ratio = non_zero / (h * w) MESSAGE("差异像素: {}".format(change_ratio)) host.check_greater(change_ratio, 0.01, f"背景图未发生明显变化,差异占比{change_ratio:.2%}") ``` ## 说明 示例中使用的是华为阅读应用,在执行用例前需要保证设备已安装此应用,运行过程中如果出现应用的控件发生了变化,需要进行适配。 ## 约束与限制 * 本示例支持API Version 17 Release及以上版本。 * 本示例推荐从PyCharm官网安装2022.3以后的社区版本。项目创建功能只支持2022.3至2025.1的Pycharm版本。2024.3版本由于pycharm自身原因,只能选择单设备模板进行创建。 * 本示例基于DevEco Testing Hypium 6.0.6.210版本实现。 * 本示例基于华为阅读3.1.47.301版本实现。 ## 工程目录 ```markdown ├── aw │ └── Utils.py // 示例模块文件 ├── config // 测试工程配置文件夹 │ └── user_config.xml // 测试工程配置文件 ├── resource // 测试资源文件夹 ├── testcases // 测试用例文件夹 │ ├── BooksPageSettingsDemo.json // 测试用例配置文件,配置用例所需设备等参数 │ └── BooksPageSettingsDemo.py // 测试用例文件 └── main.py // 测试用例执行入口文件 ``` ## 参考文档 [应用UI测试(基于Python)](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/hypium-python-guidelines)