DriverFreightFlowPage (APP): - 流程方法拆为单一职责的细粒度操作(open_freight_tab/fill_quantity/upload_photo_from_album/...), 流程方法仅做编排,公共 API 不变,用例零改动 - 移除全部 implicitly_wait 全局副作用,每步显式等待目标元素 - 容错点击(已知晓/确定)改为 _tap_by_text_if_present,跳过时记录 warning FreightAccountingPage (Web): - _go/_click_search 改显式等待(搜索框出现/列表数据行或空态),替代固定 2s/1s sleep - 表格等待升级为 td:visible,避开 vxe-table 固定列隐藏占位单元格 - 点击行操作按钮后显式等待弹窗出现,替代固定 800ms - 车队长下拉选择改显式等待下拉项渲染 - 可选弹窗操作统一收敛到 _try_click,跳过时记录 warning;关键确认按钮保持严格 两条 E2E 用例在真实环境回归通过(TC-D2S-001 116s / TC-D2S-002 112s)。
35 lines
5.9 KiB
XML
35 lines
5.9 KiB
XML
<?xml version="1.0" encoding="utf-8"?><testsuites name="pytest tests"><testsuite name="pytest" errors="0" failures="2" skipped="0" tests="2" time="149.974" timestamp="2026-08-03T15:04:44.737373+08:00" hostname="Y8126"><testcase classname="cross_end.tests.test_driver_to_settlement.TestDriverToSettlement" name="test_driver_to_settlement_full_flow" time="88.744"><failure message="selenium.common.exceptions.TimeoutException: Message: Stacktrace: NoSuchElementError: An element could not be located on the page using the given search parameters. at AndroidUiautomator2Driver.findElOrEls (C:\Users\23184\.appium\node_modules\appium-uiautomator2-driver\node_modules\appium-android-driver\build\lib\commands\find.js:62:15) at process.processTicksAndRejections (node:internal/process/task_queues:104:5) at async AndroidUiautomator2Driver.findElOrElsWithProcessing (C:\Users\23184\AppData\Roaming\npm\node_modules\appium\node_modules\@appium\base-driver\build\lib\basedriver\commands\find.js:12:16) at async AndroidUiautomator2Driver.findElement (C:\Users\23184\AppData\Roaming\npm\node_modules\appium\node_modules\@appium\base-driver\build\lib\basedriver\commands\find.js:28:16) at async runCommandPromise (C:\Users\23184\AppData\Roaming\npm\node_modules\appium\node_modules\@appium\base-driver\build\lib\basedriver\driver.js:119:24)">E:\test\QaAutomationHub\tests\cross_end\tests\test_driver_to_settlement.py:102: in test_driver_to_settlement_full_flow
|
|
driver_flow.unload_goods_flow(weight="10")
|
|
tests\cross_end\pages\app\driver_freight_flow_page.py:177: in unload_goods_flow
|
|
self._wait_and_click(self.load_unload_confirm) # ㉖ 卸货确认
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
tests\cross_end\pages\app\driver_freight_flow_page.py:71: in _wait_and_click
|
|
wait.until(EC.visibility_of_element_located(locator))
|
|
D:\Python\Python312\Lib\site-packages\selenium\webdriver\support\wait.py:121: in until
|
|
raise TimeoutException(message, screen, stacktrace)
|
|
E selenium.common.exceptions.TimeoutException: Message:
|
|
E Stacktrace:
|
|
E NoSuchElementError: An element could not be located on the page using the given search parameters.
|
|
E at AndroidUiautomator2Driver.findElOrEls (C:\Users\23184\.appium\node_modules\appium-uiautomator2-driver\node_modules\appium-android-driver\build\lib\commands\find.js:62:15)
|
|
E at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
|
|
E at async AndroidUiautomator2Driver.findElOrElsWithProcessing (C:\Users\23184\AppData\Roaming\npm\node_modules\appium\node_modules\@appium\base-driver\build\lib\basedriver\commands\find.js:12:16)
|
|
E at async AndroidUiautomator2Driver.findElement (C:\Users\23184\AppData\Roaming\npm\node_modules\appium\node_modules\@appium\base-driver\build\lib\basedriver\commands\find.js:28:16)
|
|
E at async runCommandPromise (C:\Users\23184\AppData\Roaming\npm\node_modules\appium\node_modules\@appium\base-driver\build\lib\basedriver\driver.js:119:24)</failure></testcase><testcase classname="cross_end.tests.test_driver_to_settlement.TestDriverToSettlementTeamLeader" name="test_driver_to_settlement_team_leader_flow" time="60.810"><failure message="selenium.common.exceptions.TimeoutException: Message: Stacktrace: NoSuchElementError: An element could not be located on the page using the given search parameters. at AndroidUiautomator2Driver.findElOrEls (C:\Users\23184\.appium\node_modules\appium-uiautomator2-driver\node_modules\appium-android-driver\build\lib\commands\find.js:62:15) at process.processTicksAndRejections (node:internal/process/task_queues:104:5) at async AndroidUiautomator2Driver.findElOrElsWithProcessing (C:\Users\23184\AppData\Roaming\npm\node_modules\appium\node_modules\@appium\base-driver\build\lib\basedriver\commands\find.js:12:16) at async AndroidUiautomator2Driver.findElement (C:\Users\23184\AppData\Roaming\npm\node_modules\appium\node_modules\@appium\base-driver\build\lib\basedriver\commands\find.js:28:16) at async runCommandPromise (C:\Users\23184\AppData\Roaming\npm\node_modules\appium\node_modules\@appium\base-driver\build\lib\basedriver\driver.js:119:24)">E:\test\QaAutomationHub\tests\cross_end\tests\test_driver_to_settlement.py:206: in test_driver_to_settlement_team_leader_flow
|
|
driver_flow.load_goods_flow(weight="10")
|
|
tests\cross_end\pages\app\driver_freight_flow_page.py:138: in load_goods_flow
|
|
self._tap_by_text("装货") # ⑥ 点击装货
|
|
^^^^^^^^^^^^^^^^^^^^^^^
|
|
tests\cross_end\pages\app\driver_freight_flow_page.py:83: in _tap_by_text
|
|
self._wait_and_click(locator, timeout_s)
|
|
tests\cross_end\pages\app\driver_freight_flow_page.py:71: in _wait_and_click
|
|
wait.until(EC.visibility_of_element_located(locator))
|
|
D:\Python\Python312\Lib\site-packages\selenium\webdriver\support\wait.py:121: in until
|
|
raise TimeoutException(message, screen, stacktrace)
|
|
E selenium.common.exceptions.TimeoutException: Message:
|
|
E Stacktrace:
|
|
E NoSuchElementError: An element could not be located on the page using the given search parameters.
|
|
E at AndroidUiautomator2Driver.findElOrEls (C:\Users\23184\.appium\node_modules\appium-uiautomator2-driver\node_modules\appium-android-driver\build\lib\commands\find.js:62:15)
|
|
E at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
|
|
E at async AndroidUiautomator2Driver.findElOrElsWithProcessing (C:\Users\23184\AppData\Roaming\npm\node_modules\appium\node_modules\@appium\base-driver\build\lib\basedriver\commands\find.js:12:16)
|
|
E at async AndroidUiautomator2Driver.findElement (C:\Users\23184\AppData\Roaming\npm\node_modules\appium\node_modules\@appium\base-driver\build\lib\basedriver\commands\find.js:28:16)
|
|
E at async runCommandPromise (C:\Users\23184\AppData\Roaming\npm\node_modules\appium\node_modules\@appium\base-driver\build\lib\basedriver\driver.js:119:24)</failure></testcase></testsuite></testsuites> |