--- Logging error --- Traceback (most recent call last): File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\logging\__init__.py", line 1154, in emit stream.write(msg + self.terminator) ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^ OSError: [WinError 6] 句柄无效。 Call stack: File "c:\Users\a\PyCharmMiscProject\smart-management-auto-test\Joyhub_ui_auto_test\tests\test_my_order.py", line 132, in raise SystemExit(pytest.main([str(Path(__file__))])) File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\_pytest\config\__init__.py", line 199, in main ret: ExitCode | int = config.hook.pytest_cmdline_main(config=config) File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\pluggy\_hooks.py", line 512, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\pluggy\_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\pluggy\_callers.py", line 121, in _multicall res = hook_impl.function(*args) File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\_pytest\main.py", line 365, in pytest_cmdline_main return wrap_session(config, _main) File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\_pytest\main.py", line 318, in wrap_session session.exitstatus = doit(config, session) or 0 File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\_pytest\main.py", line 372, in _main config.hook.pytest_runtestloop(session=session) File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\pluggy\_hooks.py", line 512, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\pluggy\_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\pluggy\_callers.py", line 121, in _multicall res = hook_impl.function(*args) File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\_pytest\main.py", line 396, in pytest_runtestloop item.config.hook.pytest_runtest_protocol(item=item, nextitem=nextitem) File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\pluggy\_hooks.py", line 512, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\pluggy\_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\pluggy\_callers.py", line 121, in _multicall res = hook_impl.function(*args) File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\_pytest\runner.py", line 118, in pytest_runtest_protocol runtestprotocol(item, nextitem=nextitem) File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\_pytest\runner.py", line 131, in runtestprotocol rep = call_and_report(item, "setup", log) File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\_pytest\runner.py", line 244, in call_and_report call = CallInfo.from_call( File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\_pytest\runner.py", line 353, in from_call result: TResult | None = func() File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\_pytest\runner.py", line 245, in lambda: runtest_hook(item=item, **kwds), File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\pluggy\_hooks.py", line 512, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\pluggy\_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\pluggy\_callers.py", line 121, in _multicall res = hook_impl.function(*args) File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\_pytest\runner.py", line 165, in pytest_runtest_setup item.session._setupstate.setup(item) File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\_pytest\runner.py", line 523, in setup col.setup() File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\_pytest\python.py", line 1723, in setup self._request._fillfixtures() File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\_pytest\fixtures.py", line 707, in _fillfixtures item.funcargs[argname] = self.getfixturevalue(argname) File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\_pytest\fixtures.py", line 539, in getfixturevalue fixturedef = self._get_active_fixturedef(argname) File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\_pytest\fixtures.py", line 627, in _get_active_fixturedef fixturedef.execute(request=subrequest) File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\_pytest\fixtures.py", line 1110, in execute result: FixtureValue = ihook.pytest_fixture_setup( File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\pluggy\_hooks.py", line 512, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\pluggy\_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\pluggy\_callers.py", line 121, in _multicall res = hook_impl.function(*args) File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\_pytest\fixtures.py", line 1202, in pytest_fixture_setup result = call_fixture_func(fixturefunc, request, kwargs) File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\_pytest\fixtures.py", line 908, in call_fixture_func fixture_result = next(generator) File "C:\Users\a\PyCharmMiscProject\smart-management-auto-test\Joyhub_ui_auto_test\tests\conftest.py", line 207, in test_run_logger logger.info("用例开始: %s", case_name) Message: '用例开始: %s' Arguments: ('tests/test_my_order.py::test_home_my_order_first_order_detail_after_login[chromium]',) 2026-05-13 15:00:58,144 [INFO] tests.test_my_order - 登录用户从首页进入 My Order 并查看第一笔订单详情 2026-05-13 15:00:58,145 [INFO] tests.test_my_order - 打开链接地址: https://joyhub-website-frontend-test.best-envision.com/ --- Logging error --- Traceback (most recent call last): File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\logging\__init__.py", line 1154, in emit stream.write(msg + self.terminator) ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^ OSError: [WinError 6] 句柄无效。 Call stack: File "c:\Users\a\PyCharmMiscProject\smart-management-auto-test\Joyhub_ui_auto_test\tests\test_my_order.py", line 132, in raise SystemExit(pytest.main([str(Path(__file__))])) File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\_pytest\config\__init__.py", line 199, in main ret: ExitCode | int = config.hook.pytest_cmdline_main(config=config) File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\pluggy\_hooks.py", line 512, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\pluggy\_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\pluggy\_callers.py", line 121, in _multicall res = hook_impl.function(*args) File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\_pytest\main.py", line 365, in pytest_cmdline_main return wrap_session(config, _main) File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\_pytest\main.py", line 318, in wrap_session session.exitstatus = doit(config, session) or 0 File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\_pytest\main.py", line 372, in _main config.hook.pytest_runtestloop(session=session) File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\pluggy\_hooks.py", line 512, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\pluggy\_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\pluggy\_callers.py", line 121, in _multicall res = hook_impl.function(*args) File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\_pytest\main.py", line 396, in pytest_runtestloop item.config.hook.pytest_runtest_protocol(item=item, nextitem=nextitem) File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\pluggy\_hooks.py", line 512, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\pluggy\_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\pluggy\_callers.py", line 121, in _multicall res = hook_impl.function(*args) File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\_pytest\runner.py", line 118, in pytest_runtest_protocol runtestprotocol(item, nextitem=nextitem) File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\_pytest\runner.py", line 137, in runtestprotocol reports.append(call_and_report(item, "call", log)) File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\_pytest\runner.py", line 244, in call_and_report call = CallInfo.from_call( File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\_pytest\runner.py", line 353, in from_call result: TResult | None = func() File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\_pytest\runner.py", line 245, in lambda: runtest_hook(item=item, **kwds), File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\pluggy\_hooks.py", line 512, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\pluggy\_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\pluggy\_callers.py", line 121, in _multicall res = hook_impl.function(*args) File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\_pytest\runner.py", line 179, in pytest_runtest_call item.runtest() File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\_pytest\python.py", line 1720, in runtest self.ihook.pytest_pyfunc_call(pyfuncitem=self) File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\pluggy\_hooks.py", line 512, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\pluggy\_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\pluggy\_callers.py", line 121, in _multicall res = hook_impl.function(*args) File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\_pytest\python.py", line 166, in pytest_pyfunc_call result = testfunction(**testargs) File "C:\Users\a\PyCharmMiscProject\smart-management-auto-test\Joyhub_ui_auto_test\tests\test_my_order.py", line 124, in test_home_my_order_first_order_detail_after_login ensure_logged_in_user() File "C:\Users\a\PyCharmMiscProject\smart-management-auto-test\Joyhub_ui_auto_test\tests\conftest.py", line 114, in _ensure_logged_in_user login_as_configured_user_if_needed(page) File "C:\Users\a\PyCharmMiscProject\smart-management-auto-test\Joyhub_ui_auto_test\tests\conftest.py", line 67, in login_as_configured_user_if_needed logger.info("当前未登录,执行配置用户登录") Message: '当前未登录,执行配置用户登录' Arguments: () 2026-05-13 15:01:01,382 [INFO] tests.test_my_order - 等待登录完成并展示用户菜单入口 2026-05-13 15:01:01,413 [INFO] tests.test_my_order - 从首页查找 My Order 入口 2026-05-13 15:01:01,481 [INFO] tests.test_my_order - 已通过首页可见入口进入 My Order: a[href*="order" i] 2026-05-13 15:01:01,481 [INFO] tests.test_my_order - 等待进入订单列表页 2026-05-13 15:01:02,386 [INFO] tests.test_my_order - 点击第一笔订单详情入口 2026-05-13 15:01:02,551 [INFO] tests.test_my_order - 已点击订单详情入口: a[href*="order" i] 2026-05-13 15:01:32,567 [INFO] tests.test_my_order - 点击第一笔订单后 URL 未变化,继续校验当前页面是否展示详情内容 --- Logging error --- Traceback (most recent call last): File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\logging\__init__.py", line 1154, in emit stream.write(msg + self.terminator) ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^ OSError: [WinError 6] 句柄无效。 Call stack: File "c:\Users\a\PyCharmMiscProject\smart-management-auto-test\Joyhub_ui_auto_test\tests\test_my_order.py", line 132, in raise SystemExit(pytest.main([str(Path(__file__))])) File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\_pytest\config\__init__.py", line 199, in main ret: ExitCode | int = config.hook.pytest_cmdline_main(config=config) File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\pluggy\_hooks.py", line 512, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\pluggy\_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\pluggy\_callers.py", line 121, in _multicall res = hook_impl.function(*args) File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\_pytest\main.py", line 365, in pytest_cmdline_main return wrap_session(config, _main) File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\_pytest\main.py", line 318, in wrap_session session.exitstatus = doit(config, session) or 0 File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\_pytest\main.py", line 372, in _main config.hook.pytest_runtestloop(session=session) File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\pluggy\_hooks.py", line 512, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\pluggy\_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\pluggy\_callers.py", line 121, in _multicall res = hook_impl.function(*args) File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\_pytest\main.py", line 396, in pytest_runtestloop item.config.hook.pytest_runtest_protocol(item=item, nextitem=nextitem) File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\pluggy\_hooks.py", line 512, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\pluggy\_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\pluggy\_callers.py", line 121, in _multicall res = hook_impl.function(*args) File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\_pytest\runner.py", line 118, in pytest_runtest_protocol runtestprotocol(item, nextitem=nextitem) File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\_pytest\runner.py", line 142, in runtestprotocol reports.append(call_and_report(item, "teardown", log, nextitem=nextitem)) File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\_pytest\runner.py", line 244, in call_and_report call = CallInfo.from_call( File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\_pytest\runner.py", line 353, in from_call result: TResult | None = func() File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\_pytest\runner.py", line 245, in lambda: runtest_hook(item=item, **kwds), File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\pluggy\_hooks.py", line 512, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\pluggy\_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\pluggy\_callers.py", line 121, in _multicall res = hook_impl.function(*args) File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\_pytest\runner.py", line 194, in pytest_runtest_teardown item.session._setupstate.teardown_exact(nextitem) File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\_pytest\runner.py", line 555, in teardown_exact fin() File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\_pytest\fixtures.py", line 1042, in finish fin() File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\allure_commons\_allure.py", line 274, in __call__ return self._fixture_function(*args, **kwargs) File "C:\Users\a\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\_pytest\fixtures.py", line 924, in _teardown_yield_fixture next(it) File "C:\Users\a\PyCharmMiscProject\smart-management-auto-test\Joyhub_ui_auto_test\tests\conftest.py", line 217, in test_run_logger logger.info("用例通过: %s, 耗时: %.2fs", case_name, elapsed) Message: '用例通过: %s, 耗时: %.2fs' Arguments: ('tests/test_my_order.py::test_home_my_order_first_order_detail_after_login[chromium]', 34.6412463998422)