gpt4 book ai didi

Laravel Dusk lode Chrome 扩展

转载 作者:行者123 更新时间:2023-12-05 06:16:41 24 4
gpt4 key购买 nike

我正在使用 Laravel Dusk使用我的浏览器自动执行程序Laravel Dusk 使用 ChromeDriver 实现自动化我遇到的问题是我在常规 Google Chrome 浏览器上安装了一些扩展程序

但是,当我通过 Laravel Dusk 加载 ChromeDriver 时,没有任何扩展会加载它。

有没有办法让它们加载?

最佳答案

想知道自己该怎么做,这里有一个使用 MetaMask 扩展作为示例的解决方案:

首先需要编辑DuskTestCase.php文件的驱动函数:

/**
* Create the RemoteWebDriver instance.
*
* Get "user-data-dir" from Google Chrome Profile Path parameters: chrome://version/
*
* @return \Facebook\WebDriver\Remote\RemoteWebDriver
*/
protected function driver()
{
// --user-data-dir & --profile-directory are optional
$options = (new ChromeOptions)->addArguments(collect([
'--window-size=1920,1080',
//'--user-data-dir='.$_ENV["GOOGLE_CHROME_USER_DATA_DIR"],
// '--profile-directory='.$_ENV["GOOGLE_CHROME_USER_PROFILE"],
])->unless($this->hasHeadlessDisabled(), function ($items) {
return $items->merge([
//'--disable-gpu',
//'--headless',
]);
})->all());

// Here you add an array with the paths of the extensions you want to add, must be files in .CRX format
try {
$options->addExtensions([$_ENV['METAMASK_EXTENSION_PATH']]);
} catch (\Throwable $e) {
//
}

return RemoteWebDriver::create(
$_ENV['DUSK_DRIVER_URL'] ?? 'http://localhost:9515',
DesiredCapabilities::chrome()->setCapability(
ChromeOptions::CAPABILITY, $options
)
);
}

代码 '$options->addExtensions([$_ENV['METAMASK_EXTENSION_PATH']]);'指定 CRX 格式的扩展文件路径数组。

因此,您需要将扩展​​名放在您选择的目录中的 .crx 中。

要将 Google Chrome 扩展程序转换为 CRX 格式,步骤如下:(来源:https://dev.to/ltmenezes/automated-dapps-scrapping-with-selenium-and-metamask-2ae9)

  • 在您的常规 Chrome 上安装 Metamask(或您选择的扩展程序)
  • 导航到 chrome://extensions/
  • 点击“打包扩展”并输入 Metamask 扩展的本地路径。在 Mac Os X 中的某处 PATH_TO/Library/Application Support/Google/Chrome/Default/Extensions/EXTENSION_IDENTIFIER/FOLDER/

参见:Where does Chrome store extensions?

这将生成一个 .crx 文件,您可以使用该文件作为 Chromium 的扩展加载。

如果扩展程序第一次需要大量配置,最好将其安装在新的 Google Chrome 配置文件上,配置它,然后提供 --user-data-dir 和 --profile-directory 作为 ChromeOptions 到加载它。在那种特定情况下,扩展将已经安装,因此带有“$options->addExtensions([$_ENV['METAMASK_EXTENSION_PATH']]);”的部分可以评论。

# Google CRX3 from extension to download a Chrome extension in .crx format
METAMASK_EXTENSION_PATH=/CHANGE_ME/metamask-chrome-10.8.1.crx

# See Profile Path in Google Chrome with chrome://version/
# The last part of the full Profile Path is the User Profile name to set for GOOGLE_CHROME_USER_PROFILE,
# remove that last part to set GOOGLE_CHROME_USER_DATA_DIR
GOOGLE_CHROME_USER_DATA_DIR="/CHANGE_ME/Library/Application Support/Google/Chrome/"
GOOGLE_CHROME_USER_PROFILE=Default

关于Laravel Dusk lode Chrome 扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61982976/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com