我正在尝试使用此示例来获取 NFT 在 opensea 中的报价数量:
import { test, expect } from '@playwright/test';
test('test', async ({ page }) => {
await page.goto('https://opensea.io/assets/ethereum/0x63217dbb73e7a02c1d30f486e899ee66d0aa5e0b/6341');
await page.waitForLoadState('networkidle');
let selector = page.locator("[id='Body offers-panel'] li");
const offers = await selector.count();
console.log('Num of offers:', offers);
});
然后我运行“npx playwright test”,总是打印“Num of Offers: 0”
但是如果我在 --headed 模式下运行它,它会完美地工作并输出“Num of Offers: 5”
谁能解释/帮助我理解它?
我尝试使用:
let selector = page.locator("[id='Body offers-panel'] li").waitFor();
尝试等待所有请求完成
await page.waitForLoadState('networkidle');
尝试等待选择器:
let selector = page.locator("[id='Body offers-panel'] li").first().waitFor();
但是没有一个起作用,除非我在 --headed 模式下运行测试,否则无论我尝试哪个 NFT 地址,我的计数总是 0。
我想解决它或了解为什么会发生这种情况
最佳答案
某些网站如果检测到 headless 客户端,将不会加载页面。这是为了防止抓取等。我猜这就是这里发生的事情
关于typescript - 剧作家在有头模式下工作,但在 headless 模式下失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75488727/