解决Host system is missing dependencies to run browsers.Missing libraries:libgtk-3.so.0 libasound.so.2

解决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 的主要功能:

  1. 跨浏览器自动化
    Playwright 支持在多种浏览器中执行自动化脚本,包括 Chromium、Firefox 和 WebKit。这意味着开发者可以编写一套代码,同时在不同的浏览器上运行测试。

  2. 真实的浏览器环境
    Playwright 使用真实的浏览器进程,而不是模拟浏览器。这确保了自动化测试的环境与用户实际使用的环境一致,从而提高了测试的准确性。

  3. 丰富的API
    Playwright 提供了丰富的API,允许开发者执行各种复杂的操作,如点击、输入文本、拖放、截图、视频录制等。

  4. 无头模式
    在无头模式下,Playwright 可以在没有图形用户界面的情况下运行,这对于服务器端的自动化测试非常有用。

  5. 多设备和多平台支持
    Playwright 可以模拟多种设备和平台的行为,包括不同的屏幕尺寸、分辨率和操作系统。这使得开发者能够在不同设备上测试应用的表现。

  6. 网络操作
    Playwright 提供了网络操作的API,允许开发者模拟网络请求、响应和错误,这对于测试网络依赖的应用非常有用。

  7. 浏览器性能分析
    Playwright 可以收集浏览器性能数据,帮助开发者分析和优化应用的性能。

  8. 浏览器自动化脚本录制
    Playwright 提供了一个名为 Playwright Recorder 的工具,它可以录制用户在浏览器中的操作,并生成自动化脚本。

  9. 与DevTools协议兼容
    Playwright 与浏览器的 DevTools 协议兼容,这意味着它可以与现有的浏览器调试工具和扩展一起使用。

Playwright 的作用:

  1. 自动化测试
    Playwright 是一个强大的自动化测试工具,它可以用于单元测试、集成测试和端到端测试。它可以帮助开发者在开发过程中发现和修复问题,提高软件质量。

  2. 性能测试
    通过模拟用户操作和收集性能数据,Playwright 可以帮助开发者识别性能瓶颈,优化应用性能。

  3. 兼容性测试
    Playwright 可以在不同的浏览器和设备上运行测试,确保应用在各种环境下都能正常工作。

  4. 安全性测试
    通过模拟用户行为,Playwright 可以帮助发现潜在的安全漏洞,如跨站脚本攻击(XSS)和跨站请求伪造(CSRF)。

  5. 用户行为分析
    Playwright 可以记录用户在浏览器中的行为,帮助开发者理解用户如何与应用交互,从而改进用户体验。

  6. 持续集成
    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
  • 23
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
host system is missing dependencies to run browsers表示主机系统缺少运行浏览器所需的依赖项。missing libraries表示缺少库文件。 当主机系统缺少浏览器运行所需的依赖项时,无法正常运行浏览器。这些依赖项通常是一些库文件,这些库文件提供了浏览器运行所需的功能和支持。 要解决这个问题,可以尝试以下步骤: 1. 检查主机系统的是否有最新的操作系统更新。有时缺少依赖项可能是因为操作系统没有及时更新。 2. 检查浏览器的最新版本。确保安装了最新版本的浏览器,因为它们可能包含了一些新的依赖项。 3. 安装缺少的库文件。根据报错信息中提到的缺少的库文件,可以尝试手动安装这些库文件。根据主机系统的不同,可以通过包管理器(如apt、yum、brew等)来安装缺少的库文件。 4. 检查系统环境变量和路径设置。有时,浏览器可能无法找到依赖项,是因为系统环境变量或路径设置不正确。确保这些设置正确并包含了所需依赖项的路径。 5. 如果以上方法都无法解决问题,可以尝试重新安装浏览器。先卸载浏览器,然后重新下载最新版本的浏览器并进行安装。 总结起来,解决主机系统缺少浏览器所需的依赖项和缺少库文件的问题,在保证操作系统和浏览器最新版本的前提下,可以尝试更新操作系统、安装缺少的库文件、检查系统环境变量和路径设置、重新安装浏览器。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代码讲故事

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值