为什么我在使用JS Path从使用Playwright和JavaScript的网站中检索结果时没有得到响应?

jhiyze9q  于 2023-06-28  发布在  Java
关注(0)|答案(1)|浏览(140)

我试图使用JavaScript和Playwright库来从在线赌场游戏中获得结果。我设法正常登录并转到游戏的特定URL。
当我检查显示结果的元素并使用控制台时,我得到了结果。问题是,当我复制JS路径并将其粘贴到代码中并运行它时,我没有得到任何响应。
下面是我用来检索结果的代码:

import {firefox, webkit, chromium} from 'playwright'
(async () => {
const browser = await firefox.launch({
headless: false
})
const page = await browser.newPage()

await page.goto('https://www.playpix.com/');
await page.goto('https://www.playpix.com/pb/');
await page.waitForLoadState('networkidle');
await page.getByRole('button', { name: 'Aceitar' }).click();
await page.getByRole('button', { name: 'Entrar' }).click();
await page.getByLabel('Email / Usuário').click();
await page.getByLabel('Email / Usuário').fill('mrooc@me.com');
await page.getByLabel('Email / Usuário').press('Tab');
await page.getByLabel('Senha').click();
await page.getByLabel('Senha').fill('thepassword');
await page.locator('form').getByRole('button', { name: 'Entrar' }).click();
await page.waitForLoadState('networkidle');
await page.waitForTimeout(4000)

await page.goto('https://www.playpix.com/pb/?openGames=217032-real&gameNames=Football%20Studio'); 
await page.waitForTimeout(20000)
while (true) {

    // Wait for the element to be visible
    var result = document.querySelector("#root > div > div.app--2c5f6 > div > div.content--82383 > div.footerWrapper--3a742 > div > div.footer--0ff51.right--c3d03 > div > div > div > div:nth-child(1) > svg > g > text");

    // Print the text content
    console.log(result.textContent());

}

})();

我正在使用While循环尝试获得结果,因为它们以30秒或多或少的间隔更新。
我错过了什么?

p8h8hvxi

p8h8hvxi1#

document.querySelector不能在节点端工作。你需要找到元素并计算一个JavaScript表达式:

var result = await page
  .locator("#root > div > div.app--2c5f6 > div > div.content--82383 > div.footerWrapper--3a742 > div > div.footer--0ff51.right--c3d03 > div > div > div > div:nth-child(1) > svg > g > text")
    .evaluate(node => node.textContent());

// Print the text content
console.log(result);

相关问题