解决Host system is missing dependencies to run browsers.Missing libraries:libgtk-3.so.0 libasound.so.2.
错误类似如下:
[System] Fetching …
Traceback (most recent call last):
File “cli_demo.py”, line 21, in
for results in webglm.stream_query(question):
File “/root/WebGLM/model/modeling_webglm.py”, line 35, in stream_query
refs = self.ref_retriever.query(question)
File “/root/WebGLM/model/retriever/init.py”, line 27, in query
fetch_results = self.fetcher.fetch(urls)
File “/root/WebGLM/model/retriever/fetching/init.py”, line 28, in fetch
self.loop.run_until_complete(get_raw_pages(urls, close_browser=True))
File “/usr/local/python3/lib/python3.8/asyncio/base_events.py”, line 616, in run_until_complete
return future.result()
File “/root/WebGLM/model/retriever/fetching/playwright_based_crawl_new.py”, line 50, in get_raw_pages
context = await get_conetent()
File “/root/WebGLM/model/retriever/fetching/playwright_based_crawl_new.py”, line 28, in get_conetent
browser = await playwright.firefox.launch()
File “/usr/local/python3/lib/python3.8/site-packages/playwright/async_api/_generated.py”, line 11636, in launch
await self._impl_obj.launch(
File “/usr/local/python3/lib/python3.8/site-packages/playwright/_impl/_browser_type.py”, line 93, in launch
Browser, from_channel(await self._channel.send(“launch”, params))
File “/usr/local/python3/lib/python3.8/site-packages/playwright/_impl/_connection.py”, line 43, in send
return await self._connection.wrap_api_call(
File “/usr/local/python3/lib/python3.8/site-packages/playwright/_impl/_connection.py”, line 387, in wrap_api_call
return await cb()
File “/usr/local/python3/lib/python3.8/site-packages/playwright/_impl/_connection.py”, line 78, in inner_send
result = next(iter(done)).result()
playwright._impl._api_types.Error:
╔══════════════════════════════════════════════════════╗
║ Host system is missing dependencies to run browsers. ║
║ Missing libraries: ║
║ libgtk-3.so.0 ║
║ libgdk-3.so.0 ║
║ libasound.so.2 ║
║ libXtst.so.6 ║
║ libcairo-gobject.so.2 ║
║ libX11-xcb.so.1 ║
╚══════════════════════════════════════════════════════╝
[root@1b1ce99f56bb WebGLM]#
Playwright 是一个由 Microsoft 开发的开源自动化库,用于自动化 Web、移动和桌面应用程序的测试。它支持多种浏览器,包括 Chromium、Firefox 和 WebKit,并且可以模拟真实用户的交互行为。Playwright 的目标是提供一个统一的 API 来处理跨浏览器的自动化任务。
Playwright 的主要功能:
-
跨浏览器自动化:
Playwright 支持在多种浏览器中执行自动化脚本,包括 Chromium、Firefox 和 WebKit。这意味着开发者可以编写一套代码,同时在不同的浏览器上运行测试。 -
真实的浏览器环境:
Playwright 使用真实的浏览器进程,而不是模拟浏览器。这确保了自动化测试的环境与用户实际使用的环境一致,从而提高了测试的准确性。 -
丰富的API:
Playwright 提供了丰富的API,允许开发者执行各种复杂的操作,如点击、输入文本、拖放、截图、视频录制等。 -
无头模式:
在无头模式下,Playwright 可以在没有图形用户界面的情况下运行,这对于服务器端的自动化测试非常有用。 -
多设备和多平台支持:
Playwright 可以模拟多种设备和平台的行为,包括不同的屏幕尺寸、分辨率和操作系统。这使得开发者能够在不同设备上测试应用的表现。 -
网络操作:
Playwright 提供了网络操作的API,允许开发者模拟网络请求、响应和错误,这对于测试网络依赖的应用非常有用。 -
浏览器性能分析:
Playwright 可以收集浏览器性能数据,帮助开发者分析和优化应用的性能。 -
浏览器自动化脚本录制:
Playwright 提供了一个名为 Playwright Recorder 的工具,它可以录制用户在浏览器中的操作,并生成自动化脚本。 -
与DevTools协议兼容:
Playwright 与浏览器的 DevTools 协议兼容,这意味着它可以与现有的浏览器调试工具和扩展一起使用。
Playwright 的作用:
-
自动化测试:
Playwright 是一个强大的自动化测试工具,它可以用于单元测试、集成测试和端到端测试。它可以帮助开发者在开发过程中发现和修复问题,提高软件质量。 -
性能测试:
通过模拟用户操作和收集性能数据,Playwright 可以帮助开发者识别性能瓶颈,优化应用性能。 -
兼容性测试:
Playwright 可以在不同的浏览器和设备上运行测试,确保应用在各种环境下都能正常工作。 -
安全性测试:
通过模拟用户行为,Playwright 可以帮助发现潜在的安全漏洞,如跨站脚本攻击(XSS)和跨站请求伪造(CSRF)。 -
用户行为分析:
Playwright 可以记录用户在浏览器中的行为,帮助开发者理解用户如何与应用交互,从而改进用户体验。 -
持续集成:
Playwright 可以集成到持续集成(CI)流程中,自动化测试可以在代码提交时自动运行,确保新代码不会破坏现有功能。
Playwright 的出现为Web自动化测试领域带来了新的活力,它的跨浏览器支持、丰富的API和真实的浏览器环境使得自动化测试更加高效和可靠。
上面的错误出现原因:
主要是 playwright 缺少依赖导致,安装对应的依赖即可:
# centos
yum -y install libappindicator-gtk3
yum -y install liberation-fonts
yum -y install alsa-lib-devel
yum -y install libX11-devel --nogpg
yum -y install libasound.so.2 libX11-xcb.so.1
# 或者
yum install -y libgtk-x11-2.0.so.0 libgdk-x11-2.0.so.0 libXi.so.6 libXcursor.so.1 libXcomposite.so.1 libXtst.so.6 libXss.so.1 libgconf-2.so.4 libasound.so.2 libcups.so.2
yum install -y gtk2 libXtst libXScrnSaver GConf2 alsa-lib
# ubuntu/debian
sudo apt-get install -y gstreamer1.0-libav libnss3-tools libatk-bridge2.0-0 libcups2-dev libxkbcommon-x11-0 libxcomposite-dev libxrandr2 libgbm-dev libgtk-3-0
sudo apt-get install gconf-service libasound2 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 ca-certificates fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils wget
# ubuntu/debian也可以执行来安装依赖
python -m playwright install --with-deps