微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何等到 URL 更改/或直到连接脱机

如何解决如何等到 URL 更改/或直到连接脱机

我每天使用 Playwright 1.12 + Chromium 90 重新启动路由器。
我的脚本导航到路由器的页面 1.1.1.1/reset.asp
然后脚本单击按钮,接受对话框,然后在路由器内部发生魔术。
现在我有两个选项可以确保路由器已成功重新启动:

  1. 检测浏览器中的连接是否“离线”(这是一个好兆头,我希望等待此事件)
  2. 等到page.url()更改为1.1.1.1(当路由器再次启动时,浏览器中的URL会为此更改)

你能告诉我如何实现这两点之一的任何想法吗?
最好等到浏览器中的连接离线。

示例代码

async function login() {
    // some stuff here
    await reset();
  }

async function reset() {
    // some stuff here
    // current URL is 1.1.1.1/reset.asp
    page.on('dialog',async dialog => {
      await dialog.accept();
      // I WANT TO CHANGE THIS DELAY FOR SOMETHING LIKE:
      // await waitUntilConnectionGoesDown()
      await delay(5000);
      await finish(true);
    });
    await frame.click('#reboot');
    // OR HERE WAIT FOR URL CHANGE
    // await waitForUrlChange()
    // await finish(true);
  }

  async function finish(success) {
    // success ? CLOSING broWSER : DOING SOMETHING ELSE;
  }

解决方法

Playwright 最近添加了 waitForURL,在您的情况下,您可以使用它来等待 URL 导航到新的预期 URL。

此外,我建议您将 pubspec.yaml 用于您的点击/弹出逻辑,请参阅 here 以了解有关它的更多信息,因为这样您的流程就不会嵌套在发出的事件中。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。