首页 > 解决方案 > 为什么我在尝试使用 chromedriver 打开浏览器时收到 UnhandledPromiseRejectionWarning

问题描述

我正在尝试使用 selenium chromedriver 和 node.js 打开 chrome 浏览器并获取 google.com。chromedriver 和浏览器之间没有版本不匹配。但是,我收到以下错误并且浏览器无法打开:

(节点:18512)UnhandledPromiseRejectionWarning:未处理的承诺拒绝。此错误源于在没有 catch 块的情况下抛出异步函数内部,或拒绝未使用 .catch() 处理的承诺。(拒绝编号:1)

(节点:18512)[DEP0018] DeprecationWarning:不推荐使用未处理的承诺拒绝。将来,未处理的 Promise 拒绝将使用非零退出代码终止 Node.js 进程。

这是我使用的代码:

const {Builder, By, Key, util} = require("chromedriver");

async function openBrowser() {
    let driver = await new Builder().forBrowser("chrome").build();
    await driver.get("http://google.com");
}
openBrowser();

标签: javascriptnode.jsseleniumselenium-webdriverselenium-chromedriver

解决方案


处理异步函数承诺的方法是使用thenand catch

例如,您的功能openBrowser

openBrowser().then(driver => {
        myDriver = driver;
    }).catch(err => {
        error = { error: { message: err.message } }
    });

推荐阅读