From 3a2b6c21bcc8548526eebd188dcd6a6b8dc37545 Mon Sep 17 00:00:00 2001 From: ut005790 Date: Wed, 28 Aug 2024 11:04:23 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B9=E6=B3=95=E6=95=B4=E6=94=B9=E5=B9=B6?= =?UTF-8?q?=E4=B8=94=E6=96=B0=E5=A2=9E=E4=B8=80=E4=B8=AA=E7=94=A8=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- case/__init__.py | 0 case/test_euler_1271301.py | 19 ++++++ case/test_mycase_001.py | 17 ----- case/test_mycase_002.py | 20 ------ method/assert_method.py | 2 + method/base_method.py | 13 +++- method/dde_autotest_euler_method.py | 99 ----------------------------- method/dde_control_center_method.py | 59 +++++++++++++++++ method/dde_dock_method.py | 25 ++++++++ method/dde_launcher_method.py | 37 +++++++++++ method/dde_method.py | 55 ++++++++++++++++ 11 files changed, 209 insertions(+), 137 deletions(-) delete mode 100644 case/__init__.py create mode 100644 case/test_euler_1271301.py delete mode 100644 case/test_mycase_001.py delete mode 100644 case/test_mycase_002.py delete mode 100644 method/dde_autotest_euler_method.py create mode 100644 method/dde_control_center_method.py create mode 100644 method/dde_dock_method.py create mode 100644 method/dde_launcher_method.py create mode 100644 method/dde_method.py diff --git a/case/__init__.py b/case/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/case/test_euler_1271301.py b/case/test_euler_1271301.py new file mode 100644 index 0000000..41c7bae --- /dev/null +++ b/case/test_euler_1271301.py @@ -0,0 +1,19 @@ +import pytest +from case.base_case import BaseCase +from youqu3 import sleep +from method.dde_method import DdeMethod + + +class TestMyCase(BaseCase): + def test_euler_1271301(self): + """在控制中心中添加汉语键盘布局""" + DdeMethod().dde_method_add_hanyu_keyboard_layout_in_control_center() + self.assert_image_exist_in_dde("keyboard_layout_hanyu.png") + + @pytest.fixture(scope="function", autouse=True) + def tear_down(self): + """环境清理,将新增的汉语键盘布局删除""" + yield + sleep(2) + DdeMethod().dde_method_delete_keyboard_layout_by_img() + DdeMethod().dde_method_close_window() \ No newline at end of file diff --git a/case/test_mycase_001.py b/case/test_mycase_001.py deleted file mode 100644 index 462ea6c..0000000 --- a/case/test_mycase_001.py +++ /dev/null @@ -1,17 +0,0 @@ -#!/usr/bin/env python3 -# _*_ coding:utf-8 _*_ -""" -:Author:uos -:Date :2024/08/27 13:42:04 -""" -from case.base_case import BaseCase -from method.dde_autotest_euler_method import DdeAutotestEulerMethod - -class TestMyCase(BaseCase): - - def test_mycase_001(self): - """this is my test case title""" - # 用例步骤,调用方法层封装好的方法进行操作 - DdeAutotestEulerMethod().click_dde_file_manager_on_dock_by_attr() - # 在关键节点进行断言 - self.assert_true(True) diff --git a/case/test_mycase_002.py b/case/test_mycase_002.py deleted file mode 100644 index 7f7b047..0000000 --- a/case/test_mycase_002.py +++ /dev/null @@ -1,20 +0,0 @@ -#!/usr/bin/env python3 -# _*_ coding:utf-8 _*_ -""" -:Author:uos -:Date :2024/08/27 13:42:04 -""" -from case.base_case import BaseCase -from youqu3 import sleep -from youqu3.gui import pylinuxauto - -class TestMyCase(BaseCase): - - def test_mycase_002(self, check): - """快捷键 ctrl + alt + t 启动终端""" - # 用例步骤,调用方法层封装好的方法进行操作 - pylinuxauto.ctrl_alt_t() - # 在关键节点进行断言 - # 等待 2 秒,判断终端是否启动 - sleep(2) - check.asset_true(True) diff --git a/method/assert_method.py b/method/assert_method.py index a7f221c..f7b89fc 100644 --- a/method/assert_method.py +++ b/method/assert_method.py @@ -15,8 +15,10 @@ class AssertMethod(Assert): @classmethod def assert_image_exist_in_dde(cls, img_name, rate=0.8): + """断言图像存在于dde界面中""" cls.assert_image_exist(f"{config.ASSERT_RES}/{img_name}", rate=rate) @classmethod def assert_image_not_exist_in_dde(cls, img_name, rate=0.8): + """断言图像不存在于dde界面中""" cls.assert_image_not_exist(f"{config.ASSERT_RES}/{img_name}", rate=rate) diff --git a/method/base_method.py b/method/base_method.py index 568b87c..6b61771 100644 --- a/method/base_method.py +++ b/method/base_method.py @@ -4,7 +4,18 @@ :Author:uos :Date :2024/08/22 13:15:47 """ - +from funnylog2.config import config as funnylog2_config +funnylog2_config.CLASS_NAME_ENDSWITH = ["Method"] +from youqu3.gui import pylinuxauto +from config import config class BaseMethod: + """应用的方法基类""" + def dde_method_click_by_ocr(self, text): + """通过ocr识别点击""" + pylinuxauto.find_element_by_ocr(text).click() + + def dde_method_click_by_img(self, img_name): + """通过图像识别点击""" + pylinuxauto.find_element_by_image(f"{config.IMAGE_RES}/{img_name}").click() \ No newline at end of file diff --git a/method/dde_autotest_euler_method.py b/method/dde_autotest_euler_method.py deleted file mode 100644 index 7cd0907..0000000 --- a/method/dde_autotest_euler_method.py +++ /dev/null @@ -1,99 +0,0 @@ -#!/usr/bin/env python3 -# _*_ coding:utf-8 _*_ -""" -:Author:uos -:Date :2024/08/22 13:15:47 -""" - -from time import sleep - -from dnf.yum.misc import import_key_to_pubring -from funnylog2.config import config as funnylog2_config - -funnylog2_config.CLASS_NAME_ENDSWITH = ["Method"] - -from youqu3 import log -from youqu3.gui import pylinuxauto -from config import config -from method.base_method import BaseMethod - - -@log -class DdeMethod(BaseMethod): - """应用方法主类""" - - def dde_method_click_dde_file_manager_on_dock_by_attr(self): - """在任务栏点击文件管理器""" - pylinuxauto.find_element_by_attr_path("/dde-dock/Btn_文件管理器").click() - - def dde_method_click_by_ocr(self, text): - pylinuxauto.find_element_by_ocr(text).click() - - def dde_method_click_by_attr(self, PATH): - pylinuxauto.find_element_by_attr_path(PATH).click() - - def dde_method_click_by_img(self, img_name): - pylinuxauto.find_element_by_image(f"{config.IMAGE_RES}/{img_name}").click() - - def dde_method_click_launcher_on_dock_by_attr(self): - DdeMethod().dde_method_click_by_attr( - "/dde-dock/Form_mainwindow/Btn_mainpanelcontrol/Form_fixedarea/Btn_launcheritem" - ) - - def dde_method_search_software_in_dock(self): - DdeMethod().dde_method_click_launcher_on_dock_by_attr() - DdeMethod().dde_method_click_by_attr( - "/dde-launcher/Form_windowedframe/Form_rightwidget/Form_searcheredit/Editable_dlineeditchildlineedit" - ) - - def dde_method_click_all_categories_in_launcher(self): - DdeMethod().dde_method_click_launcher_on_dock_by_attr() - DdeMethod().dde_method_click_by_attr( - "/dde-launcher/Form_windowedframe/Form_rightwidget/Btn_switchbtn/AllIcon" - ) - - def dde_method_click_back_in_all_categories_view(self): - DdeMethod().dde_method_click_by_attr( - "/dde-launcher/Form_windowedframe/Form_rightwidget/Btn_switchbtn/AllIcon" - ) - - def dde_method_click_system_manager_in_all_categories_view(self): - DdeMethod().dde_method_click_by_img("system_manager_in_all_categories_view.png") - - def dde_method_open_control_center_by_dock(self): - pylinuxauto.find_element_by_attr_path("/dde-dock/Btn_控制中心").click() - - def dde_method_click_keyboard_and_language_in_control_center(self): - pylinuxauto.find_element_by_attr_path( - "/dde-control-center/DMainWindow/contentwindow/键盘和语言" - ).click() - - def dde_method_click_keyboard_layout_in_control_center(self): - DdeMethod().dde_method_click_by_attr( - "/dde-control-center/DMainWindow/contentwindow/Form_modulepage/Form_keyboardwidget/List_keyboardlist/键盘布局" - ) - - def dde_method_close_control_center_by_window(self): - DdeMethod().dde_method_click_by_img("close_window_btn.png") - - def dde_method_add_keyboard_layout_in_control_center(self): - DdeMethod().dde_method_open_control_center_by_dock() - sleep(3) - DdeMethod().dde_method_click_keyboard_and_language_in_control_center() - DdeMethod().dde_method_click_keyboard_layout_in_control_center() - DdeMethod().dde_method_click_by_attr( - "/dde-control-center/DMainWindow/contentwindow/Form_modulepage/Form_kblayoutsettingwidget/Btn_addlayout" - ) - DdeMethod().dde_method_click_by_attr( - "/dde-control-center/DMainWindow/contentwindow/Form_modulepage/ContentWidget_contentArea/TranslucentFrame/List_keyboardmenulist/汉语" - ) - DdeMethod().dde_method_click_by_attr( - "/dde-control-center/DMainWindow/contentwindow/Form_modulepage/ContentWidget_contentArea/ButtonTuple/Btn_添加" - ) - - - - -if __name__ == "__main__": - sleep(3) - DdeMethod().dde_method_close_control_center_by_window() \ No newline at end of file diff --git a/method/dde_control_center_method.py b/method/dde_control_center_method.py new file mode 100644 index 0000000..cfbcf67 --- /dev/null +++ b/method/dde_control_center_method.py @@ -0,0 +1,59 @@ +from time import sleep +from funnylog2.config import config as funnylog2_config +from pylinuxauto.attr.dogtail.rawinput import click +funnylog2_config.CLASS_NAME_ENDSWITH = ["Method"] +from youqu3 import log +from youqu3.gui import pylinuxauto +from config import config +from method.base_method import BaseMethod +from method.dde_dock_method import DdeDockMethod + + +@log +class DdeControlCenterMethod(BaseMethod): + + + def dde_control_center_method_click_keyboard_and_language_by_attr(self): + """在控制中心主界面中点击 键盘和语言""" + pylinuxauto.find_element_by_attr_path( + "/dde-control-center/键盘和语言" + ).click() + + def dde_control_center_method_click_keyboard_layout_by_attr(self): + """在 键盘和语言 模块点击 键盘布局""" + pylinuxauto.find_element_by_attr_path( + "/dde-control-center/键盘布局" + ).click() + + def dde_control_center_method_click_add_keyboard_layout_btn_by_attr(self): + """点击 键盘布局 模块下方的加号按钮添加键盘布局""" + pylinuxauto.find_element_by_attr_path( + "/dde-control-center/Btn_addlayout" + ).click() + + def dde_control_center_method_click_hanyu_keyboard_layout_at_list(self): + """在 添加键盘布局 界面点击 汉语""" + pylinuxauto.find_element_by_attr_path( + "/dde-control-center/汉语" + ).click() + + def dde_control_center_method_click_bottom_add_btn_by_attr(self): + """点击 添加键盘布局 界面下方的添加按钮,从而确认添加""" + pylinuxauto.find_element_by_attr_path( + "/dde-control-center/Btn_添加" + ).click() + + def dde_control_center_method_click_edit_btn_in_keyboard_layout(self): + """点击 键盘布局 界面右侧的编辑按钮""" + pylinuxauto.find_element_by_attr_path( + "/dde-control-center/Btn_dcommandlinkbutton" + ).click() + + def dde_control_center_click_delete_keyboard_layout_btn_by_img(self): + """进入 键盘布局 的编辑界面之后,点击键盘布局列表右侧的红色按钮删除键盘布局""" + DdeControlCenterMethod().dde_method_click_by_img("delete_keyboard_layout_icon.png") + + + +if __name__ == '__main__': + DdeDockMethod().dde_dock_method_click_control_center_btn_by_attr() diff --git a/method/dde_dock_method.py b/method/dde_dock_method.py new file mode 100644 index 0000000..95b8fed --- /dev/null +++ b/method/dde_dock_method.py @@ -0,0 +1,25 @@ +from time import sleep +from funnylog2.config import config as funnylog2_config +funnylog2_config.CLASS_NAME_ENDSWITH = ["Method"] +from youqu3 import log +from youqu3.gui import pylinuxauto +from config import config +from method.base_method import BaseMethod + +@log +class DdeDockMethod(BaseMethod): + + + def dde_dock_method_click_dde_file_manager_by_attr(self): + """在任务栏点击文件管理器""" + pylinuxauto.find_element_by_attr_path("/dde-dock/Btn_文件管理器").click() + + def dde_dock_method_click_launcher_btn_by_attr(self): + """在任务栏点击启动器""" + pylinuxauto.find_element_by_attr_path( + "/dde-dock/Btn_launcheritem" + ).click() + + def dde_dock_method_click_control_center_btn_by_attr(self): + """在任务栏点击控制中心""" + pylinuxauto.find_element_by_attr_path("/dde-dock/Btn_控制中心").click() diff --git a/method/dde_launcher_method.py b/method/dde_launcher_method.py new file mode 100644 index 0000000..1f98599 --- /dev/null +++ b/method/dde_launcher_method.py @@ -0,0 +1,37 @@ +from funnylog2.config import config as funnylog2_config + +funnylog2_config.CLASS_NAME_ENDSWITH = ["Method"] + +from youqu3 import log +from youqu3.gui import pylinuxauto +from config import config +from method.base_method import BaseMethod +from method.dde_dock_method import DdeDockMethod + + +@log +class DdeLauncherMethod(BaseMethod): + + def dde_launcher_method_click_search_box_by_attr(self): + """在启动器中点击搜索框""" + pylinuxauto.find_element_by_attr_path( + "/dde-launcher/Editable_dlineeditchildlineedit" + ).click() + + def dde_launcher_method_click_all_categories_or_back_by_attr(self): + """点击启动器下方的 所有分类 或者 返回""" + pylinuxauto.find_element_by_attr_path( + "/dde-launcher/AllIcon" + ).click() + + def dde_launcher_method_click_system_manager_in_all_categories_view(self): + """在启动器的 所有分类 界面点击 系统管理""" + DdeLauncherMethod().dde_method_click_by_img("system_manager_in_all_categories_view.png") + + + + + +if __name__ == '__main__': + DdeDockMethod().dde_dock_method_click_launcher_btn_by_attr() + DdeLauncherMethod().dde_launcher_method_click_all_categories_or_back_by_attr() \ No newline at end of file diff --git a/method/dde_method.py b/method/dde_method.py new file mode 100644 index 0000000..95b6286 --- /dev/null +++ b/method/dde_method.py @@ -0,0 +1,55 @@ +#!/usr/bin/env python3 +# _*_ coding:utf-8 _*_ +""" +:Author:uos +:Date :2024/08/22 13:15:47 +""" + +from time import sleep +from funnylog2.config import config as funnylog2_config +funnylog2_config.CLASS_NAME_ENDSWITH = ["Method"] +from youqu3 import log +from youqu3.gui import pylinuxauto +from config import config +from method.base_method import BaseMethod +from method.dde_dock_method import DdeDockMethod +from method.dde_control_center_method import DdeControlCenterMethod +from method.dde_launcher_method import DdeLauncherMethod + + +@log +class DdeMethod(BaseMethod): + """应用方法主类""" + + + def dde_method_open_software_by_launcher(self, text): + """通过启动器打开软件""" + DdeDockMethod().dde_dock_method_click_launcher_btn_by_attr() + DdeLauncherMethod().dde_launcher_method_click_search_box_by_attr() + pylinuxauto.input_message(text) + pylinuxauto.enter() + + def dde_method_close_window(self): + """关闭窗口""" + DdeMethod().dde_method_click_by_img("close_window_btn.png") + + def dde_method_add_hanyu_keyboard_layout_in_control_center(self): + """在 键盘布局 界面添加 汉语""" + DdeDockMethod().dde_dock_method_click_control_center_btn_by_attr() + sleep(6) + DdeControlCenterMethod().dde_control_center_method_click_keyboard_and_language_by_attr() + DdeControlCenterMethod().dde_control_center_method_click_keyboard_layout_by_attr() + DdeControlCenterMethod().dde_control_center_method_click_add_keyboard_layout_btn_by_attr() + DdeControlCenterMethod().dde_control_center_method_click_hanyu_keyboard_layout_at_list() + DdeControlCenterMethod().dde_control_center_method_click_bottom_add_btn_by_attr() + + + def dde_method_delete_keyboard_layout_by_img(self): + """在键盘布局界面删除列表中的其他布局""" + DdeControlCenterMethod().dde_control_center_method_click_edit_btn_in_keyboard_layout() + DdeControlCenterMethod().dde_control_center_click_delete_keyboard_layout_btn_by_img() + + + +if __name__ == "__main__": + DdeMethod().dde_method_add_hanyu_keyboard_layout_in_control_center() \ No newline at end of file -- Gitee