首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法检测页面上是否存在Puppeteer中的元素

无法检测页面上是否存在Puppeteer中的元素
EN

Stack Overflow用户
提问于 2019-10-02 17:29:08
回答 2查看 302关注 0票数 0

我正在为一个精灵宝可梦MMORPG游戏写一个机器人。我写了一个脚本来登录我的帐户并四处移动,问题是当我到处移动时,我有时会找到一个pokemon,然后创建一个新的div,其中包含pokemon的数据。我还得到了一个按钮( id为'# catch ')来捕获pokemon。所以我编写了这个脚本,让它可以检查#catch按钮。这是我的代码

代码语言:javascript
复制
while (true) {
    await page.waitFor(500);
    await page.keyboard.press("ArrowDown");
    if ((await page.$("input#catch")) != null) {
      console.log("Pokemon Found!");
    } else {
      console.log("No Pokemon Found");
    }

然而,我每次都会看到“找不到精灵宝可梦”,即使有。

EN

回答 2

Stack Overflow用户

发布于 2019-10-02 17:48:47

可以使用vanilla javascript检查元素是否存在

代码语言:javascript
复制
if(document.getElementById('catch').length > 0){
    console.log("Pokemon Found!");
}else{
    console.log("No Pokemon Found");
}
票数 0
EN

Stack Overflow用户

发布于 2019-10-02 19:14:02

我发现在代码中使用‘waitForSelector’并不可靠,效率也不高。如果你把它们设得太小,如果网络延迟或其他原因,那么你就会失败。如果你把它们设得很大,那么你的代码就会永远做不到。在我的代码中,我一直是WaitFor。它有一个等待/超时可以扩大。

示例:

代码语言:javascript
复制
async clickSomeButton(cssSelector) {
    if (await page.waitForSelector(cssSelector, 10000)) {
        await page.click(cssSelector);
        return;
    }
    return fail;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58198813

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档