标签: puppeteer

如何使用(Apify 的)Puppeteer 单击没有 ID 的按钮?

我正在使用Apify 的 puppeteer登录该网站。我确实研究过类似的问题,但无济于事。

我无法找到链接登录页面上看到的主登录按钮的可点击 ID/元素。目前,我的代码如下所示:

const Apify = require('apify');

Apify.main(async () => {
const input = await Apify.getValue('INPUT');

const browser = await Apify.launchPuppeteer();
const page = await browser.newPage();
await page.goto('https://www.sunpass.com/vector/account/home/accountLogin.do');

// Login
await page.type('#tt_username1', input.username);
await page.type('#tt_loginPassword1', input.password);
await page.waitFor(2000);
await page.click('#entryform input');
await page.waitForNavigation();

// Get cookies
const cookies = await page.cookies();

// Use cookies in other tab or browser
const page2 = await browser.newPage();
await page2.setCookie(...cookies);
await page2.goto('https://www.sunpass.com/vector/account/transactions/webtransactionSearch.do'); // Opens page as …
Run Code Online (Sandbox Code Playgroud)

button clickable puppeteer apify

0
推荐指数
1
解决办法
7076
查看次数

如何禁用 puppeteer Sharp 中的图像?

我使用此代码来禁用页面加载中的图像,但不起作用:

_page = await _browser.NewPageAsync();

await _page.SetRequestInterceptionAsync(true);

// disable images to download
_page.Request += (sender, e) =>
{
    if (e.Request.ResourceType == ResourceType.Image)
        e.Request.AbortAsync();
    else
        e.Request.ContinueAsync();
};
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

c# webautomation puppeteer puppeteer-sharp

0
推荐指数
1
解决办法
3908
查看次数

如何使用 Puppeteer 在元素上绘制边界框

我对 Puppeteer 和 JS 非常陌生,但我想知道如何在网页上找到一个元素并在其周围绘制一个边界框,这样如果我进行屏幕截图,该框将可见(我想要整个页面的屏幕截图,但想要还可以查看边界框。

javascript webautomation puppeteer

0
推荐指数
1
解决办法
2890
查看次数

如何用puppeteer获取DIV属性?

我得到的href元素a

const hrefs = await page.evaluate(() => 
Array.from(document.body.querySelectorAll('a'), ({ href }) => href));
Run Code Online (Sandbox Code Playgroud)

但是当我尝试获取aria-labeldata-xx获取div元素时,此方法不起作用。

这是为什么?我如何获取aria-label元素data-xx的属性div

超文本标记语言

<div class="test" arial-label="something" data-all="something">
</div>
Run Code Online (Sandbox Code Playgroud)

javascript node.js puppeteer

0
推荐指数
1
解决办法
5370
查看次数

pupetteer - 获取内部文本返回 JSHandle 前缀

我使用此代码来查找元素并获取其文本:


// helper method to find elements
async function findElementByText(page, tag, searchValue, conditionType) {
  const items = await page.$$(tag)
  for (var i = 0; i < items.length; i++) {
    let valueHandle = await items[i].getProperty('innerText');
    let itemText = await valueHandle.jsonValue();
    const text = getItemText(itemText);
    if(conditionType == 'contains'){
      if (text.indexOf(searchValue) !== -1) return items[i]
    }else if(conditionType == 'equals'){
      if (searchValue == text) return items[i]
    }
  }
  return false;
}

// find an element using helper
let searchResult = await findElementByText(parent, 'span', 'R$', …
Run Code Online (Sandbox Code Playgroud)

typescript puppeteer

0
推荐指数
1
解决办法
3442
查看次数

如何滚动到 Puppeteer 中提供的元素?

我需要滚动到 puppeteer 中的元素。如何实现这一目标?我尝试模拟移动设备来检查响应能力

puppeteer

0
推荐指数
1
解决办法
1630
查看次数

如何点击元素木偶的特定部分

假设我有一个 500 像素宽的元素,称为“选择器”。例如,我将如何点击像素 400?

根据 puppeteer 文档, .hover() 将悬停在元素的中间。当我使用类似的代码对其进行测试时

const selector = await page.$('selector');
await selector.hover();
await selector.click();
Run Code Online (Sandbox Code Playgroud)

果然,它点击了像素 250。很明显,代码存在来实现这一点。我查看了 puppeteer 文档,但找不到我需要的源代码。任何人都可以帮忙吗?

javascript node.js puppeteer

0
推荐指数
1
解决办法
5688
查看次数

我可以使用字符和/或使用 puppeter 吗?

因为我也不知道编程,我知道你可以用不同的方式来做(你可以帮助如何)那么请帮助我,如果我可以以某种方式使用此代码中的字符或(|| 或 &&)?

我希望将多个选择器的结果显示在一行中。

当我这样做时,我得到了结果,但它们分别返回给我 X 和 Y,我想要一个结果:x1 - y1、x2 - y2 等。

const x = await page.$$eval('.classxxx', options => options.map(option => option.textContent));
const y = await page.$$eval('.classsyyyy', options => options.map(option => option.textContent));
     
console.log(x); // x1, x2, x3 
console.log(y); // y1, y2, y3
Run Code Online (Sandbox Code Playgroud)

我希望结果在下一部分中彼此相邻显示

console log(xy); // x1 y1, x2 y2, x3 y3 
Run Code Online (Sandbox Code Playgroud)

我一直在考虑类似的事情,但它不起作用:

const y = await page.$$eval('.classsyyyy || .classxxx', options => options.map(option => option.textContent));
Run Code Online (Sandbox Code Playgroud)

javascript node.js puppeteer

0
推荐指数
1
解决办法
33
查看次数

UnhandledPromiseRejectionWarning:ReferenceError:浏览器未定义用于使用 puppeteer 进行 azure 登录

我正在尝试使用 puppeteer 自动化在 azure 门户上运行的应用程序。输入密码后我收到以下错误,它没有单击提交按钮。

node:55768) UnhandledPromiseRejectionWarning: ReferenceError: browser is not defined
Run Code Online (Sandbox Code Playgroud)

这是我的示例代码:

(async () => {
  
  try {
    const launchOptions = { headless: false, args: ['--start-maximized'] };
    const browser = await puppeteer.launch(launchOptions);
    const page = await browser.newPage();
    await page.emulate(iPhonex);
    await page.goto('https://apps.testpowerapps.com/play/72ff5b93-2327-404d-9423-92eedb44a287?tenantId=n082027');
     
      //Enter User Name
      const [userName] = await page.$x('//*[@id="i0116"]');
      await userName.type("jyoti.m@azure.com");
        const [loginButton] = await page.$x('//*[@id="idSIButton9"]');
        await loginButton.press('Enter');
   
       //Enter Password
      const [passWord] = await page.$x('//*[@id="i0118"]');
      await passWord.type("Pass123");
        
        const [submitButton] = await page.$x('//*[@id="idSIButton9"]');
        await submitButton.press('Enter');
        //await page.keyboard.press('Enter');

  }
  catch(error){
  console.error(error); …
Run Code Online (Sandbox Code Playgroud)

javascript headless puppeteer

0
推荐指数
1
解决办法
228
查看次数

使用 Puppeteer 获取控制台结果(对象)

我在从 devoloper 工具的控制台日志中已存在的站点获取数据时遇到问题。我是 Puppeteer 的新手,所以我试图获取所有这些控制台日志结果,但它们都有字符串类型。你们能帮我找到一种方法来获取真实的对象或者一种解析它并使用它的方法吗,谢谢

javascript automation node.js web-scraping puppeteer

0
推荐指数
1
解决办法
1332
查看次数