From f848c76611ab0344676b7b1f8e480bb50f5771cc Mon Sep 17 00:00:00 2001 From: lixu Date: Tue, 19 Nov 2024 15:05:23 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E7=94=A8=E4=BE=8B=EF=BC=8C?= =?UTF-8?q?=E7=9C=8B=E5=9B=BE=EF=BC=8C=E6=96=87=E4=BB=B6=E9=80=89=E6=8B=A9?= =?UTF-8?q?=E5=AF=B9=E8=AF=9D=E6=A1=86=EF=BC=8C=E6=89=93=E5=BC=80=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E7=9B=AE=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. 打开看图,选择打开图片,检查弹出的对话框显示 2. 点击视图方式为图标视图 3. 检查窗口侧标签显示 4. 点击切换不同路径,检查是否可以正正常切换 5. 在空白处右键,检查右键菜单显示 6. 选中文件夹右键,检查右键菜单 7. 选择空文件夹,点击打开 8. 选择非空文件夹,有图片文件的文件夹,点击打开 9. 直接点击取消 10. 直接点击右上角x按钮 Signed-off-by: lixu --- case/assert_res/test_dde_1271275_1.png | Bin 0 -> 1668 bytes case/assert_res/test_dde_1271275_2.png | Bin 0 -> 2539 bytes case/assert_res/test_dde_1271275_3.png | Bin 0 -> 502 bytes case/test_dde_1271275.py | 124 +++++++++++++++++++++++ dde.csv | 3 +- method/image_res/trash_empty_x.png | Bin 1029 -> 356 bytes method/vender/dde_desktop_method.py | 12 +++ method/vender/dde_file_manager_method.py | 2 +- 8 files changed, 139 insertions(+), 2 deletions(-) create mode 100755 case/assert_res/test_dde_1271275_1.png create mode 100755 case/assert_res/test_dde_1271275_2.png create mode 100755 case/assert_res/test_dde_1271275_3.png create mode 100644 case/test_dde_1271275.py diff --git a/case/assert_res/test_dde_1271275_1.png b/case/assert_res/test_dde_1271275_1.png new file mode 100755 index 0000000000000000000000000000000000000000..fd198c19c0857017817f15ff9574d52bc3ab6b1b GIT binary patch literal 1668 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 literal 0 HcmV?d00001 diff --git a/case/assert_res/test_dde_1271275_3.png b/case/assert_res/test_dde_1271275_3.png new file mode 100755 index 0000000000000000000000000000000000000000..216357366e34dcf60f83ea8fa87a257a05f819e3 GIT binary patch literal 502 zcmeAS@N?(olHy`uVBq!ia0vp^E!2~4RA~QmO6lZ})WHAE+-w_aIoT|+y&A`C8 z!qdeuB%|@|EZcR540sx3KdUpQrn0VNAC>#_?{xTH=D5}#I`e6f=A<`$`xKhKdY(SP z_d0sr-sztbLyuXSs~k7Z+pYI#vY}~r@%8r)?YdGDHu!tayqNK&qPPRd_*wIAZ~dPC zoBE$*DNX-c)$3pJ_HS^|vURUltzxN-DOxM))Uf^RIhPU(nZDzTzwdi(Rh6*$=9@C> zv@M5>Jd=71kDW|8lo?Yr!|mToZF0Q`Uk$Zpp z^JSM`Zs<$BtS;NXQ(Zse?XQB|+j?T%^%AA$ER{ap3lBYN&X|^3^(*$xcUk-0tb%ik ncmDn=Y4q!&ooV{VP$PSX%+p7YGaUB?MkIr$tDnm{r-UW|?bYDU literal 0 HcmV?d00001 diff --git a/case/test_dde_1271275.py b/case/test_dde_1271275.py new file mode 100644 index 0000000..38b60f4 --- /dev/null +++ b/case/test_dde_1271275.py @@ -0,0 +1,124 @@ +import pytest + +from apps.dde_autotest_euler.case.base_case import BaseCase +from apps.dde_autotest_euler.method.dde_method import DdeMethod +from src import CmdCtl as Cmd +from src import Src +from src import sleep + + +class TestDdeFileManagerCase(BaseCase): + + @pytest.fixture(scope="class", autouse=True) + def setup_teardown(self): + """类前置和后置""" + Cmd.run_cmd("rm -f ~/.config/deepin/deepin-image-viewer/config.conf") + sleep(5) + + @pytest.fixture(scope="function", autouse=True) + def setup_teardown_1271275(self): + """前置和后置""" + euler = DdeMethod() + euler.dde_dock.click_launcher_btn_by_attr() + sleep(3) + euler.dde_launcher.click_search_box_by_attr() + Src.input("kantu") + sleep(3) + euler.dde_launcher.click_by_attr("看图") + euler.click(*euler.ocr("打开图片")) + sleep(3) + euler.dde_desktop.click_picture_dir_in_left_dialog_by_attr() + sleep(3) + + yield + Src.kill_process("deepin-image-viewer") + Src.kill_process("dde-desktop") + Cmd.run_cmd("rm -rf ~/Videos") + sleep(5) + + def test_dde_1271275_1(self): + """文件管理器——打开文件目录""" + # 1. 打开看图,选择打开图片,检查弹出的对话框显示 + # 1. 对话框显示为文件管理器,检查窗口标题显示正常; + self.assert_image_exist_in_dde("test_dde_1271275_1.png") + # 2. 点击视图方式为图标视图 + # 2. 窗口显示为图标视图,且可以调节窗口图标大小 + euler = DdeMethod() + euler.dde_desktop.click_icon_view_in_dialog_by_attr() # 图标视图 + sleep(3) + x, y = euler.dde_desktop.get_x_y_by_img("desktop_size_set_button.png") + Src.click(x + 45, y) + sleep(3) + self.assert_image_exist_in_dde("test_dde_1271275_2.png") + + def test_dde_1271275_2(self): + """文件管理器——打开文件目录""" + # 3. 检查窗口侧标签显示 + # 3. 不会显示回收站,其他显示正常 + self.assert_ocr_not_exist("回收站", max_match_number=1) + # 4. 点击切换不同路径,检查是否可以正常切换 + # 4. 目录切换正常,右侧窗口只显示文件夹,自动过滤掉非文件夹的文件 + Cmd.run_cmd("touch ~/Videos/test.txt") + Cmd.run_cmd("mkdir ~/Videos/test_dir") + sleep(3) + euler = DdeMethod() + euler.dde_desktop.click_video_dir_in_left_dialog_by_attr() + sleep(3) + self.assert_image_exist_in_dde("test_dde_1271275_3.png") + + def test_dde_1271275_3(self): + """文件管理器——打开文件目录""" + # 5. 在空白处右键,检查右键菜单显示 + # 5. 新建文件夹 新建文档 排序方式 显示方式 + euler = DdeMethod() + euler.dde_desktop.click_center_in_dialog_by_attr() + sleep(3) + Src.right_click() + self.assert_ocr_exist("新建文件夹", "新建文档", "显示方式", "排序方式") + + def test_dde_1271275_4(self): + """文件管理器——打开文件目录""" + # 6. 选中文件夹右键,检查右键菜单 + # 6. 打开 剪切 复制 重命名 压缩 删除 + euler = DdeMethod() + euler.dde_desktop.right_click_file_in_dialog_by_attr("Wallpapers") + self.assert_ocr_exist("打开", "剪切", "复制", "重命名", "压缩", "删除") + + def test_dde_1271275_5(self): + """文件管理器——打开文件目录""" + # 7. 选择空文件夹,点击打开 + # 7. 可以点击正常打开 + Cmd.run_cmd("mkdir ~/Videos/empty") + sleep(3) + euler = DdeMethod() + euler.dde_desktop.click_video_dir_in_left_dialog_by_attr() + sleep(3) + euler.dde_desktop.click_file_in_dialog_by_attr("empty") + euler.click(*euler.ocr("打开")) + self.assert_ocr_exist("文件夹为空") + + def test_dde_1271275_6(self): + """文件管理器——打开文件目录""" + # 8. 选择非空文件夹,有图片文件的文件夹,点击打开 + # 8. 图片文件被正常导入 + euler = DdeMethod() + euler.dde_desktop.click_file_in_dialog_by_attr("Wallpapers") + sleep(3) + euler.click(*euler.ocr("打开")) + self.assert_element_exist(f"$/dde-desktop//dm_splitter/right_view/file_view/abc-123.jpg") + + def test_dde_1271275_7(self): + """文件管理器——打开文件目录""" + # 9. 直接点击取消 + # 9. 窗口被关闭 + euler = DdeMethod() + euler.click(*euler.ocr("取消")) + self.assert_image_not_exist_in_dde("test_dde_1271275_1.png") + + def test_dde_1271275_8(self): + """文件管理器——打开文件目录""" + # 10. 直接点击右上角x按钮 + # 10. 窗口被关闭 + euler = DdeMethod() + euler.dde_desktop.click_dialog_x_btn_by_image() + self.assert_image_not_exist_in_dde("test_dde_1271275_1.png") \ No newline at end of file diff --git a/dde.csv b/dde.csv index 33f9735..bd909c8 100644 --- a/dde.csv +++ b/dde.csv @@ -48,4 +48,5 @@ 1271283,,, 1271281,,, 1271279,,, -1271277,,, \ No newline at end of file +1271277,,, +1271275,,, \ No newline at end of file diff --git a/method/image_res/trash_empty_x.png b/method/image_res/trash_empty_x.png index 5edc0c43781bf9b5ed1f7b0dbbd9a68e8c03b176..e4c5808d9d66fbb627f07bf2109af5f5c73e1a1a 100755 GIT binary patch delta 344 zcmV-e0jK_j2;>4GiBL{Q4GJ0x0000DNk~Le0000O0000N2m$~A0G>k_dXXU)e*qRr zL_t(Ijm?zJPC_vdh0m#dDC5o*(GW~jc#R9?Eleyw?*YM(044<8h&~jFF4_yXLuX|d zG_#q`nJ*{PAKt$FqQtUf5e}>=!zt)UaNdUi(0WxHG=U+|jH6oYhX@n^EqYNhB${#O zqjWQbC~azr_a2Z{>4?C6&04$Df9BdHlr5ZeWQg-47{isg)&(HTq1r*W#jGg2MB^^^2rtmvYn+%dC330?wM6RX2sq?E@=Oc(u(_!yEs zuM*1Fl_T&}v*wlJNX%@OQug*V-REg6&8p0>^G_sDzOB4<-I{fCkWYl&E{Qy~>w^dI qWApb#6R0000Q2m$~A0KfdeX^|lpe*?Ek zL_t(&f$f=lNK;W9$A5SCy1AOpIj7}pHk&ysS`Q?Wq?(N=%2In%L}k%Suq>^hEP7|4 zQC370`A3n1?15TaX%x7q>}{r2R@<77D17bS?QY)wn8?cLk8rzmxF7Bx_n!0R@crE{ z=W@=unAK_p4s_wMZGgkKZ~-F@e-|*~Z~-F@7cku3T%7-<1xfvwoaME`(76xIB%jR z_Q|ul3nzERC?bCRXjjEV4!(a|wMqwdoWi3m#=ul{Vd%}h=#H<}`3 zlGe8GqQSxsO%{rx(o?h;hOt=A0D{O2_R!f)EnmMM0OD2h)VbP6Pv34_lNPOr)R!8i zp<-`kSGPSPT)J?+j;38Rf2Su91nzLs6y*>Hi&ADMv1H#TAQiA^kl@7OtXFRu3{{T- zU{qYR+1e7VhJjqGrB%6^OZ$t>7F)^n zd$VRtj!}f~+qurue@K#!bzAfMi~nEH37B@$w9EbMW!>|a^-bp1!ZTO0HY|;cRn#_` zmC^G4`a6}6Myr(o@bOFQiVX++?$=Ks5->?R_8l({6a-W~sKIewSZL7VG~HKQ>x~MN zG(>cx{QkoEI&ZzL<(sLdz93a+v9>6O$#!pF<7u~()aKkme>N)c6^H~Z6bcFtZVr`* zF%0v3qA8LpIICZ_KszRWMBb4LZgqRM3rzB1QfV`Ylw<;dGTy9Umo;8$CJL$I( zuHCG>Z+erUR8a+^vPS{{%wn;y?SV~tdU{+gxA!R~VxTjF{|z3G$LFK-$E80g*Tw-{ sz{tY|j5z2VRdW0hZU!R`7ck=d1cGm0qy65*h5!Hn07*qoM6N<$f{}gpod5s; diff --git a/method/vender/dde_desktop_method.py b/method/vender/dde_desktop_method.py index e874981..d74e769 100644 --- a/method/vender/dde_desktop_method.py +++ b/method/vender/dde_desktop_method.py @@ -41,6 +41,14 @@ class DdeDesktopMethod(BaseMethod): except ElementNotFound: raise ElementNotFound(file_name) + def right_click_file_in_dialog_by_attr(self, file_name): + """文件选择对话框,点击打开文管右侧文件""" + try: + self.dog.find_element_by_attr(f"$//right_view/file_view//{file_name}").point() + self.right_click() + except ElementNotFound: + raise ElementNotFound(file_name) + def click_icon_view_in_dialog_by_attr(self): """文件选择对话框,图标视图""" try: @@ -88,3 +96,7 @@ class DdeDesktopMethod(BaseMethod): def click_picture_dir_in_left_dialog_by_attr(self): """文件选择对话框,图片目录""" self.click_dir_in_left_dialog_by_attr("图片") + + def click_dialog_x_btn_by_image(self): + """回收站清空按钮弹窗,点击x""" + self.click_by_img("trash_empty_x.png") diff --git a/method/vender/dde_file_manager_method.py b/method/vender/dde_file_manager_method.py index 16fd509..5a31774 100644 --- a/method/vender/dde_file_manager_method.py +++ b/method/vender/dde_file_manager_method.py @@ -86,7 +86,7 @@ class DdeFileManagerMethod(BaseMethod): def click_empty_x_btn_by_image(self): """回收站清空按钮弹窗,点击x""" - self.click_by_img("trash_empty_cancle.png") + self.click_by_img("trash_empty_x.png") def right_click_trash_in_desktop_by_image(self): """桌面,右键回收站(有文件)""" -- Gitee