debug_material_select.js 1.7 KB

1234567891011121314151617181920
  1. const {chromium}=require('playwright');
  2. const fs=require('fs');
  3. (async()=>{
  4. const b=await chromium.launch({headless:true,executablePath:'C:/Program Files (x86)/Microsoft/Edge/Application/msedge.exe'});
  5. const p=await b.newPage({viewport:{width:1200,height:900}}); const errors=[]; p.on('pageerror',e=>errors.push(e.message));
  6. await p.goto('http://127.0.0.1:8931/AI%E5%BF%AB%E9%80%9F%E6%8A%A5%E4%BB%B7_Demo2.html?v=material-test',{waitUntil:'load'});
  7. const d=fs.readFileSync('C:/Users/miao/Downloads/494f54100a93c5a6e0c90f404c597514.jpeg').toString('base64');
  8. await p.evaluate(d=>{qUploadedDrawing={name:'test.jpeg',type:'image/jpeg'};qUploadedDrawingUrl='data:image/jpeg;base64,'+d;qUploadedDrawingDataUrl=qUploadedDrawingUrl;qStartAnalysis();},d);
  9. await p.waitForTimeout(300);
  10. await p.locator('.q-furniture-tool').first().click();
  11. await p.evaluate(()=>qProceedFurnitureToDimensions());
  12. await p.waitForTimeout(300);
  13. const initial=await p.locator('.q-material-select').count();
  14. await p.locator('.q-material-select').first().selectOption({label:'铝格栅板'});
  15. await p.evaluate(()=>{window.prompt=()=> '实木多层板';});
  16. await p.locator('.q-material-select').first().selectOption('__custom__');
  17. await p.waitForTimeout(200);
  18. const result=await p.evaluate(()=>({count:document.querySelectorAll('.q-material-select').length,selected:document.querySelector('.q-material-select').value,allHaveCustom:[...document.querySelectorAll('.q-material-select')].every(s=>[...s.options].some(o=>o.value==='实木多层板')),roomMaterial:window._qLastAnalysisData.rooms[0].material,saved:localStorage.getItem(Q_CABINET_MATERIALS_KEY)}));
  19. console.log(JSON.stringify({initial,...result,errors})); await b.close();
  20. })().catch(e=>{console.error(e);process.exit(1)});