Chrome Playwright用于启动Chromium的View命令行

dbf7pr2w  于 2023-06-19  发布在  Go
关注(0)|答案(2)|浏览(225)

我有一个Web应用程序,它可以与Chrome上的连接设备进行对话,由于特定原因,它需要在Docker容器中进行测试。该设备有两个USB端点,其中一个是仿真串行设备。
从容器内部直接访问HW和UI所需的各种设置都在那里,我的意思是,如果我从official Playwright Docker image内部手动启动Chromium,我可以使用所述网络应用程序来刷新设备,然后通过TTY连接连接到它。在这两种情况下,Chromium首先弹出一个对话框,我必须与之交互(通过从列表中选择设备),以授予浏览器对相关硬件的访问权限。
但是,如果我运行一个Playwright测试,试图自动化这个过程,第二个对话框根本没有列出任何TTY设备,导致测试失败。这个测试非常简单,只模拟了对webapp按钮的点击,这就是为什么我不相信测试本身与这种行为有任何关系。
我怀疑我如何推出Chromium和Playwright如何做这件事之间存在一些差异,但我还没有找到一种方法来比较两者。当手动运行Chrome时,我必须包含--no-sandbox命令行选项。然而,我已经检查了chrome://sandbox和Playwright似乎也在使用这个设置,可能在其他。
有什么方法可以看到Playwright正在使用什么命令行选项来启动Chromium吗?

t1rydlwq

t1rydlwq1#

是的,您可以使用Playwright API来检索Playwright用于启动Chromium的命令行参数。Playwright中的browserType.launch()方法返回一个Browser示例,该示例具有一个process()方法,该方法提供有关浏览器进程的信息,包括命令行参数。
下面是一个如何检索Playwright用于启动Chromium的命令行选项的示例:

const { chromium } = require('playwright');

async function getChromiumCommandArgs() {
  const browser = await chromium.launch();
  const browserProcess = browser.process();
  const commandArgs = browserProcess.spawnargs.slice(2); // Exclude node and script paths

  console.log('Chromium command-line arguments:', commandArgs);

  await browser.close();
}

getChromiumCommandArgs();

当您运行此代码时,它将使用Playwright启动Chromium,检索用于启动的命令行参数,并打印它们以进行比较。
希望这能帮上忙。

rt4zxlrg

rt4zxlrg2#

事实证明,我是从错误的方向来处理这个问题的。
在Linux上,很容易获得用于启动任何运行进程的命令行:

ps -aux

找到PID最低的 chrome 工艺然后砰的一声,就是这样。
结果是

chrome --disable-field-trial-config --disable-background-networking --enable-features=NetworkService,NetworkServiceInProcess --disable-background-timer-throttling --disable-backgrounding-occluded-windows --disable-back-forward-cache --disable-breakpad --disable-client-side-phishing-detection --disable-component-extensions-with-background-pages --disable-component-update --no-default-browser-check --disable-default-apps --disable-dev-shm-usage --disable-extensions --disable-features=ImprovedCookieControls,LazyFrameLoading,GlobalMediaControls,DestroyProfileOnBrowserClose,MediaRouter,DialMediaRouteProvider,AcceptCHFrame,AutoExpandDetailsElement,CertificateTransparencyComponentUpdater,AvoidUnnecessaryBeforeUnloadCheckSync,Translate --allow-pre-commit-input --disable-hang-monitor --disable-ipc-flooding-protection --disable-popup-blocking --disable-prompt-on-repost --disable-renderer-backgrounding --force-color-profile=srgb --metrics-recording-only --no-first-run --enable-automation --password-store=basic --use-mock-keychain --no-service-autorun --export-tagged-pdf --no-sandbox --user-data-dir=/tmp/playwright_chromiumdev_profile-YHRWJD --remote-debugging-pipe --no-startup-window

相关问题