首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我正在尝试进行黑客等级自动化,而不是选择所需的元素

我正在尝试进行黑客等级自动化,而不是选择所需的元素
EN

Stack Overflow用户
提问于 2022-09-07 18:39:31
回答 1查看 56关注 0票数 0

我试图提交hackerRank网站的挑战,通过自动化使用傀儡。单击“解决挑战”按钮后,代码将出现在下一页,但不会选择复选框元素,即“文本与自定义输入”

代码语言:javascript
复制
const puppeteer = require("puppeteer");
const url = "https://www.hackerrank.com/auth/login";

(async function () {
  try {
    const browserInstance = await puppeteer.launch({
      headless: false,
      slowMo: true,
      args: ["--start-fullscreen"],
      defaultViewport: null,
    });
    let newTab = await browserInstance.newPage();
    await newTab.goto(url);
    await newTab.waitForSelector("#input-1");
    await newTab.click("#input-1");
    let email = "some-email.com";
    await newTab.type("#input-1", email, {
      delay: 50,
    });
    let password = "some-password";
    await newTab.waitForSelector("#input-2");
    await newTab.click("#input-2");
    await newTab.type("#input-2", password, {
      delay: 50,
    });
    await newTab.click('button[data-analytics="LoginPassword"]', { delay: 50 });
    await waitAndClick('a[data-attr1="algorithms"]', newTab);
    await waitAndClick('input[value="warmup', newTab);
    let allChallenges = await newTab.$$(
      ".ui-btn.ui-btn-normal.primary-cta.ui-btn-line-primary.ui-btn-styled",
      { delay: 50 }
    );
    await questionSolver(allChallenges[0], newTab);
    console.log("Total Questions", allChallenges.length);
  } catch (error) {
    console.log(error);
  }
})();
async function questionSolver(challenge, page) {
  await challenge.click();
  let inputIsClicked = await waitAndClick(".checkbox-input", page);
  return inputIsClicked;
}

async function waitAndClick(selector, cpage) {
  await cpage.waitForSelector(selector);
  let selectorClicked = cpage.click(selector);
  return selectorClicked;
}

EN

回答 1

Stack Overflow用户

发布于 2022-09-08 09:23:47

--这是在更新questionSolver函数之后为我提供的解决方案,如下所示

代码语言:javascript
复制
async function questionSolver(challenge, page, answer) {
      await Promise.all([challenge.click(), page.waitForNavigation()]);
      await waitAndClick(".checkbox-wrap", page);
      await page.waitForSelector("textarea.custominput");
      await page.type("textarea.custominput", answer, { delay: 10 });
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73640170

复制
相关文章

相似问题

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