我有一个自动脚本,单击一个按钮即可触发带有确认按钮的引导模式对话框。我的JavaScript代码如下所示:

const bookScript = () => {
    const confirm = () => {
        const el = document.querySelector('.confirm');
        if (el) {
            el.click();
            return;
        }
        setTimeout(() => confirm(), 10);
    };
    let bookBtn = document.evaluate("//button[text()='Foo'][1]", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
    if (bookBtn) {
        bookBtn.click();
        confirm();
        return true;
    }
    return false;
};


可能会出现模式对话框未显示的情况,在这种情况下,该脚本应返回false,但我希望它等待模式出现至少3秒钟,我该如何编码?

最佳答案

设置超时的方法相同。

setTimeout( () => {
  let bookBtn = document.evaluate("//button[text()='Foo'][1]", document, null,
  XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
    if (bookBtn) {
        bookBtn.click();
        confirm();
        return true;
    }
    return false;
}, 3000)

关于javascript - 如何尝试在JavaScript中执行操作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59057641/

10-10 06:17