diff --git a/case/assert_res/new_account.png b/case/assert_res/new_account.png new file mode 100644 index 0000000000000000000000000000000000000000..cb7de00fc3656545dfdcc1af0135f8e004886186 Binary files /dev/null and b/case/assert_res/new_account.png differ diff --git a/case/test_euler_1271041.py b/case/test_euler_1271041.py new file mode 100644 index 0000000000000000000000000000000000000000..7d4bb9e5e1a61ce0fb09f304f96586d1cce0f39e --- /dev/null +++ b/case/test_euler_1271041.py @@ -0,0 +1,14 @@ +from case.base_case import BaseCase +from method.dde_method import DdeMethod + + +class TestDdeCase(BaseCase): + def test_euler_1271041(self): + """在控制中心中新建账户""" + DdeMethod().dde_method_add_account_by_control_center() + self.assert_image_exist_in_dde("new_account.png") + + def teardown_method(self): + """删除新增账户并且关闭控制中心""" + DdeMethod().dde_method_delete_test_account_by_control_center() + DdeMethod().dde_method_close_window() diff --git a/case/test_euler_1271301.py b/case/test_euler_1271301.py index 41c7bae692381c91dbba8129a642eb37949b6e7d..ca52d8918688be10933ba3ee2f8511645cf853ed 100644 --- a/case/test_euler_1271301.py +++ b/case/test_euler_1271301.py @@ -4,16 +4,14 @@ from youqu3 import sleep from method.dde_method import DdeMethod -class TestMyCase(BaseCase): +class TestDdeCase(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): + def teardown_method(self): """环境清理,将新增的汉语键盘布局删除""" - yield sleep(2) - DdeMethod().dde_method_delete_keyboard_layout_by_img() - DdeMethod().dde_method_close_window() \ No newline at end of file + DdeMethod().dde_method_delete_keyboard_layout_in_control_center() + DdeMethod().dde_method_close_window() diff --git a/method/base_method.py b/method/base_method.py index 6b6177196afb1e610ede9710a7b4ad67bf97b246..624cc6707c66abd74994252753abaac48d361ddf 100644 --- a/method/base_method.py +++ b/method/base_method.py @@ -4,18 +4,24 @@ :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: + dde_control_center_path = "/dde-control-center" + account_massage = "uostest12#$" """应用的方法基类""" + 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 + pylinuxauto.find_element_by_image(f"{config.IMAGE_RES}/{img_name}").click() diff --git a/method/dde_control_center_method.py b/method/dde_control_center_method.py index cfbcf676825002c2fe2053e751a1cb65e8f9bafc..eeddd8c9d83783a6cb27c596ed7cfd968e64f443 100644 --- a/method/dde_control_center_method.py +++ b/method/dde_control_center_method.py @@ -1,6 +1,6 @@ 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 @@ -9,51 +9,51 @@ from method.base_method import BaseMethod from method.dde_dock_method import DdeDockMethod -@log class DdeControlCenterMethod(BaseMethod): - + def dde_control_center_method_click_by_attr(self, path): + """在控制中心中通过元素点击""" + pylinuxauto.find_element_by_attr_path(f"/dde-control-center/{path}").click() def dde_control_center_method_click_keyboard_and_language_by_attr(self): """在控制中心主界面中点击 键盘和语言""" - pylinuxauto.find_element_by_attr_path( - "/dde-control-center/键盘和语言" - ).click() + self.dde_control_center_method_click_by_attr("键盘和语言") def dde_control_center_method_click_keyboard_layout_by_attr(self): """在 键盘和语言 模块点击 键盘布局""" - pylinuxauto.find_element_by_attr_path( - "/dde-control-center/键盘布局" - ).click() + self.dde_control_center_method_click_by_attr("键盘布局") 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() + self.dde_control_center_method_click_by_attr("Btn_addlayout") def dde_control_center_method_click_hanyu_keyboard_layout_at_list(self): """在 添加键盘布局 界面点击 汉语""" - pylinuxauto.find_element_by_attr_path( - "/dde-control-center/汉语" - ).click() + self.dde_control_center_method_click_by_attr("汉语") def dde_control_center_method_click_bottom_add_btn_by_attr(self): """点击 添加键盘布局 界面下方的添加按钮,从而确认添加""" - pylinuxauto.find_element_by_attr_path( - "/dde-control-center/Btn_添加" - ).click() + self.dde_control_center_method_click_by_attr("Btn_添加") def dde_control_center_method_click_edit_btn_in_keyboard_layout(self): """点击 键盘布局 界面右侧的编辑按钮""" - pylinuxauto.find_element_by_attr_path( - "/dde-control-center/Btn_dcommandlinkbutton" - ).click() + self.dde_control_center_method_click_by_attr("Btn_dcommandlinkbutton") + + def dde_control_center_click_delete_btn_by_img(self): + """点击控制中心列表项目编辑状态下旁边的红色删除按钮""" + self.dde_method_click_by_img("delete_keyboard_layout_icon.png") - def dde_control_center_click_delete_keyboard_layout_btn_by_img(self): - """进入 键盘布局 的编辑界面之后,点击键盘布局列表右侧的红色按钮删除键盘布局""" - DdeControlCenterMethod().dde_method_click_by_img("delete_keyboard_layout_icon.png") + def dde_control_center_enter_view_by_search_box(self, view_name): + """通过控制中心上方的搜索框进入到对应的视图之中""" + self.dde_control_center_method_click_by_attr("Editable_searchmodulelineedit") + pylinuxauto.input_message(view_name) + sleep(3) + pylinuxauto.enter() + def dde_control_center_method_click_edit_btn_in_system_language(self): + """点击 系统语言 列表旁边的编辑按钮""" + self.dde_control_center_method_click_by_attr("Btn_dcommandlinkbutton") -if __name__ == '__main__': - DdeDockMethod().dde_dock_method_click_control_center_btn_by_attr() +if __name__ == "__main__": + sleep(3) + DdeControlCenterMethod() diff --git a/method/dde_dock_method.py b/method/dde_dock_method.py index 95b8fedf011981848b4776a804611fca1fc7f368..01fee046b7e4ac90d3d7080e727a3b31ff1ae3b7 100644 --- a/method/dde_dock_method.py +++ b/method/dde_dock_method.py @@ -1,24 +1,20 @@ 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): - +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() + pylinuxauto.find_element_by_attr_path("/dde-dock/Btn_launcheritem").click() def dde_dock_method_click_control_center_btn_by_attr(self): """在任务栏点击控制中心""" diff --git a/method/dde_launcher_method.py b/method/dde_launcher_method.py index 1f985997227b449be3003f1a1925578d8928cf4b..3165832fc13b12ae6d1d248d289aa9923e51333b 100644 --- a/method/dde_launcher_method.py +++ b/method/dde_launcher_method.py @@ -9,9 +9,7 @@ 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( @@ -20,18 +18,8 @@ class DdeLauncherMethod(BaseMethod): def dde_launcher_method_click_all_categories_or_back_by_attr(self): """点击启动器下方的 所有分类 或者 返回""" - pylinuxauto.find_element_by_attr_path( - "/dde-launcher/AllIcon" - ).click() + 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 + self.dde_method_click_by_img("system_manager_in_all_categories_view.png") diff --git a/method/dde_method.py b/method/dde_method.py index 95b62863f321c2abbe52995eef1cf1a033061337..422016a3e6a7c77599dfe41ffe79af7a41949cbe 100644 --- a/method/dde_method.py +++ b/method/dde_method.py @@ -7,49 +7,90 @@ from time import sleep from funnylog2.config import config as funnylog2_config + +from config import 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): +class DdeMethod(DdeDockMethod, DdeControlCenterMethod, DdeLauncherMethod): """应用方法主类""" - 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() + self.dde_dock_method_click_launcher_btn_by_attr() + self.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") + self.dde_method_click_by_img("close_window_btn.png") + + def dde_method_delete_keyboard_layout_in_control_center(self): + """在控制中心的键盘布局视图删除除选中之外的布局""" + self.dde_control_center_method_click_edit_btn_in_keyboard_layout() + self.dde_control_center_click_delete_btn_by_img() def dde_method_add_hanyu_keyboard_layout_in_control_center(self): - """在 键盘布局 界面添加 汉语""" - DdeDockMethod().dde_dock_method_click_control_center_btn_by_attr() + """在控制中心中添加 汉语 键盘布局""" + self.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() - + self.dde_control_center_method_click_keyboard_and_language_by_attr() + self.dde_control_center_method_click_keyboard_layout_by_attr() + self.dde_control_center_method_click_add_keyboard_layout_btn_by_attr() + self.dde_control_center_method_click_hanyu_keyboard_layout_at_list() + self.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() + def dde_method_add_english_system_language_in_control_center(self): + """在控制中心中添加 英语 系统语言""" + self.dde_dock_method_click_control_center_btn_by_attr() + sleep(6) + self.dde_control_center_enter_view_by_search_box("xitongyuyan") + sleep(2) + self.dde_control_center_method_click_by_attr("American English - 美国英语") + self.dde_control_center_method_click_bottom_add_btn_by_attr() + def dde_method_delete_system_language_by_img(self): + """在 系统语言 视图中删除其他的系统语言""" + self.dde_control_center_method_click_edit_btn_in_system_language() + self.dde_control_center_click_delete_btn_by_img() + def dde_method_add_account_by_control_center(self): + """在控制中心中添加新的账户 test""" + self.dde_dock_method_click_control_center_btn_by_attr() + sleep(6) + self.dde_control_center_enter_view_by_search_box("zhanghu") + sleep(2) + self.dde_control_center_method_click_by_attr("Btn_创建帐户") + self.dde_control_center_method_click_by_attr("Editable_usernameedit") + pylinuxauto.input_message("test") + sleep(2) + pylinuxauto.tab() + pylinuxauto.input_message("test") + sleep(2) + pylinuxauto.tab() + pylinuxauto.input_message(self.account_massage) + sleep(3) + pylinuxauto.tab() + pylinuxauto.tab() + pylinuxauto.input_message(self.account_massage) + sleep(3) + self.dde_control_center_method_click_by_attr("Btn_创建") + pylinuxauto.input_message(self.account_massage) + sleep(3) + pylinuxauto.enter() + sleep(5) -if __name__ == "__main__": - DdeMethod().dde_method_add_hanyu_keyboard_layout_in_control_center() \ No newline at end of file + def dde_method_delete_test_account_by_control_center(self): + """在控制中心中将新添加的账户test删除""" + self.dde_control_center_method_click_by_attr("test") + self.dde_control_center_method_click_by_attr("Btn_删除帐户") + self.dde_control_center_method_click_by_attr("Btn_删除") + sleep(5)