bank-name-combined.spec.ts 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. import { test, expect } from '../../utils/test-setup';
  2. import { readFileSync } from 'fs';
  3. import { join, dirname } from 'path';
  4. import { fileURLToPath } from 'url';
  5. const __filename = fileURLToPath(import.meta.url);
  6. const __dirname = dirname(__filename);
  7. const testUsers = JSON.parse(readFileSync(join(__dirname, '../../fixtures/test-users.json'), 'utf-8'));
  8. test.describe.serial('银行名称删除功能验证', () => {
  9. test.beforeEach(async ({ adminLoginPage }) => {
  10. await adminLoginPage.goto();
  11. await adminLoginPage.login(testUsers.admin.username, testUsers.admin.password);
  12. await adminLoginPage.expectLoginSuccess();
  13. });
  14. test('调试银行名称页面加载问题', async ({ page }) => {
  15. // 监听 API 响应
  16. page.on('response', async (response) => {
  17. const url = response.url();
  18. if (url.includes('/api/v1/bank-names')) {
  19. const status = response.status();
  20. console.log(' [API] ' + status + ' ' + url);
  21. if (status === 200) {
  22. try {
  23. const body = await response.text();
  24. console.log(' [API Body] ' + body.substring(0, 200));
  25. } catch (e) {
  26. console.log(' [API] 无法读取响应体');
  27. }
  28. }
  29. }
  30. });
  31. // 监听控制台
  32. page.on('console', (msg) => {
  33. if (msg.type() === 'error' || msg.type() === 'warn') {
  34. console.log(' [Console ' + msg.type() + '] ' + msg.text());
  35. }
  36. });
  37. console.log('1. 导航到银行名称管理页面...');
  38. await page.goto('http://localhost:8080/admin/bank-names');
  39. await page.waitForLoadState('domcontentloaded');
  40. // 等待更长时间
  41. console.log(' 等待页面完全加载...');
  42. await page.waitForTimeout(5000);
  43. // 截图
  44. await page.screenshot({ path: 'test-results/bank-debug-1-initial.png' });
  45. // 检查页面元素
  46. console.log('2. 检查页面状态...');
  47. const searchVisible = await page.getByTestId('search-input').isVisible().catch(() => false);
  48. console.log(' 搜索框可见: ' + searchVisible);
  49. // 检查 tbody
  50. const tbody = page.locator('tbody');
  51. const tbodyExists = await tbody.count();
  52. console.log(' tbody 数量: ' + tbodyExists);
  53. if (tbodyExists > 0) {
  54. const tbodyText = await tbody.first().textContent();
  55. console.log(' tbody 内容: "' + (tbodyText || 'empty') + '"');
  56. // 检查 tr
  57. const trCount = await page.locator('tbody tr').count();
  58. console.log(' tbody tr 数量: ' + trCount);
  59. }
  60. // 检查是否有加载状态
  61. const loadingElements = await page.locator('[aria-busy="true"], .loading, .spinner').all();
  62. console.log(' 加载指示器数量: ' + loadingElements.length);
  63. // 检查是否有空状态提示
  64. const emptyState = await page.locator('text=暂无').isVisible().catch(() => false);
  65. console.log(' 显示"暂无"提示: ' + emptyState);
  66. // 在控制台中执行 JavaScript 检查状态
  67. const pageState = await page.evaluate(() => {
  68. return {
  69. url: window.location.href,
  70. readyState: document.readyState,
  71. bodyText: document.body?.textContent?.substring(0, 200)
  72. };
  73. });
  74. console.log(' 页面状态: ' + JSON.stringify(pageState).substring(0, 200));
  75. });
  76. });