相关疑难解决方法(0)

Puppeteer:单击带有文本的元素

是否有任何方法(在API中找不到)或解决方案点击带有文本的元素?

例如我有html:

<div class="elements">
    <button>Button text</button>
    <a href=#>Href text</a>
    <div>Div text</div>
</div>
Run Code Online (Sandbox Code Playgroud)

我想点击包含文字的元素(点击.elements里面的按钮),如:

Page.click('Button text', '.elements')
Run Code Online (Sandbox Code Playgroud)

有解决方案吗

puppeteer

55
推荐指数
7
解决办法
5万
查看次数

如何在 Puppeteer Node js 中从 xPath 获取文本

在此输入图像描述

我需要从 span 标签获取文本并验证文本是否等于“check”。

我怎样才能在木偶师中实现这一目标?

下面是我编写的代码示例,如果有人可以帮我解决这个问题,请。

const puppeteer = require("puppeteer");

(async () => {
  const browser = await puppeteer.launch({
    headless: false,
    // "slowMo": 50,
    args: ["--start-fullscreen"],
    defaultViewport: null,
  });
  //Page
  const page2 = await browser.newPage();

  await page2.goto("https://www.flipkart.com");
  await page2.waitFor(2000);
  await page2.$x("//input[@class='_2zrpKA _1dBPDZ']").then(async (ele) => {
    await ele[0].type(username);
  });
  await page2.waitFor(2000);
  await page2.$x("//input[@type='password']").then(async (ele) => {
    await ele[0].type(password);
  });
  await page2.waitFor(2000);
  await page2
    .$x("//button[@class='_2AkmmA _1LctnI _7UHT_c']")
    .then(async (ele) => {
      await ele[0].click();
    });
  await page2.waitFor(2000);
  await page2.$x("//input[@class='LM6RPg']").then(async (ele) => {
    await ele[0].type("iPhone …
Run Code Online (Sandbox Code Playgroud)

puppeteer jest-puppeteer

5
推荐指数
1
解决办法
1万
查看次数

在 Puppeteer 中等待 xpath

在我用 Puppeteer 抓取的页面上,我有一个列表,每个li. 我正在尝试在此列表中查找并单击具有特定文本的元素。我有以下代码:

await page.waitFor(5000)

const linkEx = await page.$x("//a[contains(text(), 'Shop')]")

if (linkEx.length > 0) {
  await linkEx[0].click()
}
Run Code Online (Sandbox Code Playgroud)

你知道我如何用等待实际文本来替换第一行'Shop'吗?

我试过 await page.waitFor(linkEx)waitForSelector(linkEx)但它不起作用。

另外,我想a用实际的 id ( #activities) 或类似的东西替换第二行代码中的那个,但我找不到合适的例子。

你能帮我解决这个问题吗?

javascript xpath web-scraping puppeteer

3
推荐指数
2
解决办法
4558
查看次数