上一主题 下一主题
ScriptCat,新一代的脚本管理器脚本站,与全世界分享你的用户脚本油猴脚本开发指南教程目录
返回列表 发新帖

selenium nodejs处理模态对话框

[复制链接]
  • TA的每日心情
    开心
    2023-2-28 23:59
  • 签到天数: 191 天

    [LV.7]常住居民III

    637

    主题

    5194

    回帖

    6076

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6076

    荣誉开发者管理员油中2周年生态建设者喜迎中秋

    发表于 2022-9-20 22:07:45 | 显示全部楼层 | 阅读模式

    使用我封装的一个小函数
    循环调用driver.switchTo().alert().accept()
    这里必须用await
    不然没法用try_catch捕获到错误
    因为输入后不会立刻触发模态框
    所以要延时循环多次

    async function handle_model_dialog(driver, max_num = 4) {
      return new Promise((resolve) => {
        let currnet_num = 0
        let timer = setInterval(async () => {
          try {
            console.log("execute", currnet_num)
            await driver.switchTo().alert().accept()
    
          } catch {
          }
          currnet_num++
          if (currnet_num >= max_num) {
            clearInterval(timer)
            resolve()
          }
    
        }, 1000);
      })
    }
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。

    发表回复

    本版积分规则

    快速回复 返回顶部 返回列表