blog/异常处理/playwright报错缺少libatk-1-0-so...

4.4 KiB

title date tags
playwright报错缺少libatk-1.0.so.0:异常处理.md 2021-08-18 10:29:40 exception

最近开发qq机器人插件时想通过playwright自动github的页面

1. 安装go-playwright

go get github.com/mxschmitt/playwright-go

2.安装chromium

playwright install chromium	

3.自动化操作浏览器

func GetPWScreen(url string) ([]byte, error) {

	pw, err := playwright.Run()
	if err != nil {
		log.Errorf("could not start playwright: %v", err)
		return nil, err
	}
	browser, err := pw.Chromium.Launch()
	if err != nil {
		log.Errorf("could not launch browser: %v", err)
		return nil, err
	}

	page, err := browser.NewPage()

	defer func() {
		page.Close()
		pw.Stop()
	}()
	if err != nil {
		log.Errorf("could not create page: %v", err)
		return nil, err
	}
	if _, err = page.Goto(url); err != nil {
		log.Fatalf("could not goto: %v", err)
	}
	data, err := page.Screenshot(playwright.PageScreenshotOptions{
		FullPage: playwright.Bool(true),
	})
	return data, err

}

4.遇到问题

在windows上一切都能运行

在linux(ubuntu 20.4)上遇到问题提示

could not send message: could not send message to server: Protocol error (Browser.getVersion): Browser closed.
==================== Browser output: ====================
<launching> /root/.cache/ms-playwright/chromium-857950/chrome-linux/chrome --disable-background-networking --enable-features=NetworkService,NetworkServiceInProcess --disable-background-timer-throttling --disable-backgrounding-occluded-windows --disable-breakpad --disable-client-side-phishing-detection --disable-component-extensions-with-background-pages --disable-default-apps --disable-dev-shm-usage --disable-extensions --disable-features=TranslateUI,BlinkGenPropertyTrees,ImprovedCookieControls,SameSiteByDefaultCookies,LazyFrameLoading --disable-hang-monitor --disable-ipc-flooding-protection --disable-popup-blocking --disable-prompt-on-repost --disable-renderer-backgrounding --disable-sync --force-color-profile=srgb --metrics-recording-only --no-first-run --enable-automation --password-store=basic --use-mock-keychain --user-data-dir=/tmp/playwright_chromiumdev_profile-fc8kRc --remote-debugging-pipe --headless --hide-scrollbars --mute-audio --blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4 --no-sandbox --no-startup-window
<launched> pid=250754
[pid=250754][err] /root/.cache/ms-playwright/chromium-857950/chrome-linux/chrome: error while loading shared libraries: libatk-1.0.so.0: cannot open shared object file: No such file or directory
=========================== logs ===========================
<launching> /root/.cache/ms-playwright/chromium-857950/chrome-linux/chrome --disable-background-networking --enable-features=NetworkService,NetworkServiceInProcess --disable-background-timer-throttling --disable-backgrounding-occluded-windows --disable-breakpad --disable-client-side-phishing-detection --disable-component-extensions-with-background-pages --disable-default-apps --disable-dev-shm-usage --disable-extensions --disable-features=TranslateUI,BlinkGenPropertyTrees,ImprovedCookieControls,SameSiteByDefaultCookies,LazyFrameLoading --disable-hang-monitor --disable-ipc-flooding-protection --disable-popup-blocking --disable-prompt-on-repost --disable-renderer-backgrounding --disable-sync --force-color-profile=srgb --metrics-recording-only --no-first-run --enable-automation --password-store=basic --use-mock-keychain --user-data-dir=/tmp/playwright_chromiumdev_profile-fc8kRc --remote-debugging-pipe --headless --hide-scrollbars --mute-audio --blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4 --no-sandbox --no-startup-window
<launched> pid=250754
[pid=250754][err] /root/.cache/ms-playwright/chromium-857950/chrome-linux/chrome: error while loading shared libraries: libatk-1.0.so.0: cannot open shared object file: No such file or directory
============================================================
Note: use DEBUG=pw:api environment variable to capture Playwright logs.

找到重要语句

error while loading shared libraries: libatk-1.0.so.0: cannot open shared object file: No such file or directory

通过查询google

解决办法为:

sudo apt install libcups2 libnss3-dev librust-atk-sys-dev libatk-bridge2.0-dev librust-gtk-sys-dev

安装对应依赖即可解决