dedup 原值: {"id": "1", "masterEnabled": 1, "nameEnabled": 1, "nameMatchMode": 2, "similarityThreshold": 80, "phoneEnabled": 1, "updateTime": "2026-09-11 11:53:55"} PASS 登录 debug/token + /auth/me PASS 列表 workspace/page | rows=10, 第 1 页 / 共 39 条 PASS 汇总卡 workspace/board/summary | cards=5 PASS 新建客户 create | id=753585434507870208, confirmSimilar=是 PASS 编辑客户 detail?id= + edit?id=(CAS) | customer=e2c-r2demo-浏览器-115914 PASS 详情页签六页签无错误(含 agreements) Traceback (most recent call last): File "D:\code\crm-backend-matt\.scratch\customer-e2e\demo_smoke_r2.py", line 132, in page.wait_for_selector("#subBox table", timeout=15000) ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Python313\Lib\site-packages\playwright\sync_api\_generated.py", line 9033, in wait_for_selector self._sync( ~~~~~~~~~~^ self._impl_obj.wait_for_selector( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ...<4 lines>... ) ^ ) ^ File "C:\Python313\Lib\site-packages\playwright\_impl\_sync_base.py", line 115, in _sync return task.result() ~~~~~~~~~~~^^ File "C:\Python313\Lib\site-packages\playwright\_impl\_page.py", line 427, in wait_for_selector return await self._main_frame.wait_for_selector(**locals_to_params(locals())) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Python313\Lib\site-packages\playwright\_impl\_frame.py", line 394, in wait_for_selector await self._channel.send( "waitForSelector", self._timeout, locals_to_params(locals()) ) File "C:\Python313\Lib\site-packages\playwright\_impl\_connection.py", line 76, in send return await self._connection.wrap_api_call( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ...<3 lines>... ) ^ File "C:\Python313\Lib\site-packages\playwright\_impl\_connection.py", line 632, in wrap_api_call raise rewrite_error(error, f"{parsed_st['apiName']}: {error}") from None playwright._impl._errors.TimeoutError: Page.wait_for_selector: Timeout 15000ms exceeded. Call log: - waiting for locator("#subBox table") to be visible