puppeteer怎么获取一个元素的css属性

今天一个兄弟问题,元素的css属性应该怎么获取。

我当时想都没想,直接说getAttribute获取。

但是发现并不可以,他只能获取自己的属性,不能获取css属性。

那么应该怎么获取呢?

1
let t = await page.$eval('h2.text-center', x => JSON.parse(JSON.stringify(window.getComputedStyle(x))))

需要通过这个window.getComputedStyle(x),来获取css属性,当然,还需要对数据进一步处理,因为它会返回这个元素的所有属性,将自己需要的取出来即可。

Linux运行puppeteer卡在

在Linux执行puppeteer时,发现会卡browser.newPage()上一直不动。

然后在GitHub上找到了一个貌似能解决的方案。

1
2
3
4
5
6
7
8
9
const browser = await puppeteer.launch({
headless: true,
args: [
'--no-sandbox',
'--disable-setuid-sandbox',
'--disable-dev-shm-usage',
'--single-process'
]
});

但是这个的问题是,虽然不卡住了,但是会直接跳过进程好像,反正在js内加上console.log也不会执行。
后来又找到了一个

1
2
3
browser = await chromium.launch({
args: ["--disable-gpu"]
});

加上"--disable-gpu"这个后,成功执行。