セクションアウトライン

    • // 1. 定义主要执行函数
      async function executeFullProcess() {
        try {
          // 2. 点击左侧所有按钮
          const leftButtons = document.querySelectorAll('.pa-button-answer');
          console.log(`找到 ${leftButtons.length} 个左侧按钮,开始依次点击...`);
          
          for (let i = 0; i < leftButtons.length; i++) {
            const button = leftButtons[i];
            console.log(`点击按钮 ${i + 1}/${leftButtons.length} (e_id: ${button.getAttribute('e_id')})`);
            
            // 模拟真实点击事件
            const clickEvent = new MouseEvent('click', {
              bubbles: true,
              cancelable: true,
              view: window
            });
            button.dispatchEvent(clickEvent);
            
            // 等待右侧内容刷新(2秒)
            await wait(2000);
            
            // 检查右侧内容是否更新
            const questionGroups = document.querySelectorAll('.question');
            console.log(`点击后检测到 ${questionGroups.length} 个问题组`);
            await executeAnsweringProcess();
            
            // 等待页面内容刷新(2秒)
            await wait(2000);
          }
          
          console.log('所有左侧按钮点击完成');
        } catch (error) {
          console.error('执行过程中出错:', error);
        }
      }
      
      // 4. 定义自动回答函数
      async function executeAnsweringProcess() {
        // 为每个问题随机选择答案
        const questionGroups = document.querySelectorAll('.question');
        console.log(`开始回答 ${questionGroups.length} 个问题`);
        
        questionGroups.forEach(group => {
          const radios = group.querySelectorAll('input[type="radio"]');
          const randomNum = Math.floor(Math.random() * 101);
          const targetOption = randomNum > 95 ? 'b_ややそう思う' : 'a_そう思う';
          
          console.log(`问题 ${group.id} 随机数: ${randomNum} > 选择: ${targetOption}`);
          
          radios.forEach(radio => {
            const label = document.querySelector(`label[for="${radio.id}"]`);
            if (label && (label.textContent.trim() === targetOption || label.textContent.trim() === 'c_1時間程度')) {
              radio.checked = true;
              const changeEvent = new Event('change', { bubbles: true });
              radio.dispatchEvent(changeEvent);
            }
          });
        });
        
        // 等待500ms确保选择生效
        await wait(500);
        
        // 5. 提交表单
        let submitButton = document.querySelector('button[type="submit"][id="submit"]');
        if (!submitButton) {
          submitButton = document.querySelector('input[type="submit"], button[type="submit"]') || 
                          document.querySelector('#submitBtn, .submit-button, [name="submit"]');
        }
        if (!submitButton) {
          const buttons = document.querySelectorAll('button, input[type="button"]');
          buttons.forEach(btn => {
            if ((btn.value && btn.value.includes('提交')) || 
                (btn.textContent && btn.textContent.includes('提交'))) {
              submitButton = btn;
            }
          });
        }
        
        if (submitButton) {
          console.log('找到提交按钮,开始提交');
          const clickEvent = new MouseEvent('click', {
            bubbles: true,
            cancelable: true,
            view: window
          });
          submitButton.dispatchEvent(clickEvent);
          
          // 6. 处理确认模态框
          await wait(1000);
          
          const confirmCheckbox = document.getElementById('confirm-agree');
          if (confirmCheckbox) {
            console.log('找到确认复选框,开始选中');
            confirmCheckbox.checked = true;
            const changeEvent = new Event('change', { bubbles: true });
            confirmCheckbox.dispatchEvent(changeEvent);
            
            // 等待500ms确保复选框状态更新
            await wait(500);
            
            const okButton = document.getElementById('pa-btn-confirm-ok');
            if (okButton) {
              console.log('找到OK按钮,开始点击');
              
              // 确保按钮已启用
              if (okButton.classList.contains('disabled')) {
                okButton.classList.remove('disabled');
              }
              okButton.disabled = false;
              
              const okClickEvent = new MouseEvent('click', {
                bubbles: true,
                cancelable: true,
                view: window
              });
              okButton.dispatchEvent(okClickEvent);
            } else {
              console.error('未找到OK按钮');
            }
          } else {
            console.error('未找到确认复选框');
          }
        } else {
          console.error('未找到提交按钮');
        }
      }
      
      // 7. 辅助函数:等待指定时间
      function wait(ms) {
        return new Promise(resolve => setTimeout(resolve, ms));
      }
      
      // 8. 启动整个过程
      executeFullProcess();