jjzjj

java - 无法从 scoped_dir6312_32763/internal 加载扩展。管理员使用 ChromeDriver Selenium 禁用加载解压的扩展

coder 2024-04-02 原文

我使用 vue-cli 3 创建了一个项目,它会自动为我设置 e2ed 测试。当我尝试运行测试时,我从 chrome 收到一个弹出窗口,告诉我“加载解压的扩展被管理员禁用”。

这似乎是一个常见问题,提供了一种解决方案elsewhere

ChromeOptions o = new ChromeOptions();
o.addArguments("disable-extensions");
o.addArguments("--start-maximized");
WebDriver driver = new ChromeDriver(o);

现在这是 Java 代码,但我假设有一种方法可以在 vue.js 项目中实现同样的事情。但是,我不知道将此配置放在哪里。

最佳答案

这个弹出窗口:

错误信息为...

Error Loading Extension
Failed to load extension from: 'C:\Users\user_name\AppData\Local\Temp\scoped_dir6312_32763\internal'. Loading of unpacked extensions is disabled by the administrator.
OK

...表示尚未加载扩展,因为它已被管理员禁用。


根据讨论 Failed to load extention from: ... Loading of unpacked extensions is disabled by the administrator ChromeDriver 使用 Chrome 自动化扩展 自动执行各种功能,例如窗口大小调整、窗口定位等。

Failed to load extension.. 弹出窗口表示此扩展程序尚未加载。如果您手动关闭弹出窗口,浏览器将正常运行并且 ChromeDriver 命令将继续按预期工作。但在这种情况下,如果您尝试执行窗口调整大小或窗口重新定位命令,它将抛出一个错误,如 unknown error: cannot get automation extension


背景

直到 ChromeDriver v2.28 每当组织管理员策略禁止扩展时,为了绕过限制,用户使用参数 disable-extensions 如下:

ChromeOptions options = new ChromeOptions();
options.addArguments("--disable-extensions");
WebDriver driver = new ChromeDriver(options);

而且效果非常好。

ChromeDriver v2.28 之后,每当 disable-extensions 标志被测试传递时,ChromeDriver 隐式传递 disable -extensions-except 标志,依次加载 Chrome 自动化扩展。此扩展帮助 Chromedriver 执行窗口大小调整和窗口重新定位操作。

因此,如果您的组织管理策略阻止扩展,则显示弹出窗口无法从以下位置加载扩展:...加载解压的扩展是预期的行为。

此问题依赖于 Selenium support for headless .


解决方法

作为替代方案,您可以将 useAutomationExtension 功能设置为 false,如下所示:

ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("useAutomationExtension", false);
WebDriver driver = new ChromeDriver(options);

此功能反过来将有助于不加载 Chrome 自动化扩展 并且不会出现 Failed to load extension 弹出窗口。但是,如果没有 Chrome 自动化扩展,您将无法执行任何窗口调整大小/定位操作。

现在,Selenium support for headless正在解决 ChromeDriver 将不再需要此扩展,您不应该看到此错误/弹出窗口。

解决方案

最简单的解决方案是使用最新版本的 ChromeDriverChrome 组合使用以下任一方法:

  • 如果您使用的是 Chrome 版本 73,请下载 ChromeDriver 73.0.3683.20
  • 如果您使用的是 Chrome 版本 72,请下载 ChromeDriver 2.46ChromeDriver 72.0.3626.69
  • 如果您使用的是 Chrome 版本 71,请下载 ChromeDriver 2.46ChromeDriver 71.0.3578.137
  • 对于旧版 Chrome,请参阅此 discussion .

备选

其他一些替代方案是:

  • 注册表项 ExtensionInstallWhitelist 添加到白名单
  • 删除 Registry Key ExtensionInstallBlacklist,其中包含字符串键 1,值为 *

关于java - 无法从 scoped_dir6312_32763/internal 加载扩展。管理员使用 ChromeDriver Selenium 禁用加载解压的扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54594305/

有关java - 无法从 scoped_dir6312_32763/internal 加载扩展。管理员使用 ChromeDriver Selenium 禁用加载解压的扩展的更多相关文章

  1. ruby - 使用 C 扩展开发 ruby​​gem 时,如何使用 Rspec 在本地进行测试? - 2

    我正在编写一个包含C扩展的gem。通常当我写一个gem时,我会遵循TDD的过程,我会写一个失败的规范,然后处理代码直到它通过,等等......在“ext/mygem/mygem.c”中我的C扩展和在gemspec的“扩展”中配置的有效extconf.rb,如何运行我的规范并仍然加载我的C扩展?当我更改C代码时,我需要采取哪些步骤来重新编译代码?这可能是个愚蠢的问题,但是从我的gem的开发源代码树中输入“bundleinstall”不会构建任何native扩展。当我手动运行rubyext/mygem/extconf.rb时,我确实得到了一个Makefile(在整个项目的根目录中),然后当

  2. ruby - 如何在续集中重新加载表模式? - 2

    鉴于我有以下迁移:Sequel.migrationdoupdoalter_table:usersdoadd_column:is_admin,:default=>falseend#SequelrunsaDESCRIBEtablestatement,whenthemodelisloaded.#Atthispoint,itdoesnotknowthatusershaveais_adminflag.#Soitfails.@user=User.find(:email=>"admin@fancy-startup.example")@user.is_admin=true@user.save!ende

  3. ruby - RuntimeError(自动加载常量 Apps 多线程时检测到循环依赖 - 2

    我收到这个错误:RuntimeError(自动加载常量Apps时检测到循环依赖当我使用多线程时。下面是我的代码。为什么会这样?我尝试多线程的原因是因为我正在编写一个HTML抓取应用程序。对Nokogiri::HTML(open())的调用是一个同步阻塞调用,需要1秒才能返回,我有100,000多个页面要访问,所以我试图运行多个线程来解决这个问题。有更好的方法吗?classToolsController0)app.website=array.join(',')putsapp.websiteelseapp.website="NONE"endapp.saveapps=Apps.order("

  4. ruby-on-rails - 使用 config.threadsafe 时从 lib/加载模块/类的正确方法是什么!选项? - 2

    我一直致力于让我们的Rails2.3.8应用程序在JRuby下正确运行。一切正常,直到我启用config.threadsafe!以实现JRuby提供的并发性。这导致lib/中的模块和类不再自动加载。使用config.threadsafe!启用:$rubyscript/runner-eproduction'pSim::Sim200Provisioner'/Users/amchale/.rvm/gems/jruby-1.5.1@web-services/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:105:in`co

  5. c - mkmf 在编译 C 扩展时忽略子文件夹中的文件 - 2

    我想这样组织C源代码:+/||___+ext||||___+native_extension||||___+lib||||||___(Sourcefilesarekeptinhere-maycontainsub-folders)||||___native_extension.c||___native_extension.h||___extconf.rb||___+lib||||___(Rubysourcecode)||___Rakefile我无法使此设置与mkmf一起正常工作。native_extension/lib中的文件(包含在native_extension.c中)将被完全忽略。

  6. ruby-on-rails - 事件管理员日期过滤器日期格式自定义 - 2

    是否有简单的方法来更改默认ISO格式(yyyy-mm-dd)的ActiveAdmin日期过滤器显示格式? 最佳答案 您可以像这样为日期选择器提供额外的选项,而不是覆盖js:=f.input:my_date,as::datepicker,datepicker_options:{dateFormat:"mm/dd/yy"} 关于ruby-on-rails-事件管理员日期过滤器日期格式自定义,我们在StackOverflow上找到一个类似的问题: https://s

  7. ruby-on-rails - 从应用程序中自定义文件夹内的命名空间自动加载 - 2

    我们目前正在为ROR3.2开发自定义cms引擎。在这个过程中,我们希望成为我们的rails应用程序中的一等公民的几个类类型起源,这意味着它们应该驻留在应用程序的app文件夹下,它是插件。目前我们有以下类型:数据源数据类型查看我在app文件夹下创建了多个目录来保存这些:应用/数据源应用/数据类型应用/View更多类型将随之而来,我有点担心应用程序文件夹被这么多目录污染。因此,我想将它们移动到一个子目录/模块中,该子目录/模块包含cms定义的所有类型。所有类都应位于MyCms命名空间内,目录布局应如下所示:应用程序/my_cms/data_source应用程序/my_cms/data_ty

  8. ruby-on-rails - 向 Rails 3 添加 Ruby 扩展方法的最佳实践? - 2

    我有一个要在我的Rails3项目中使用的数组扩展方法。它应该住在哪里?我有一个应用程序/类,我最初把它放在(array_extensions.rb)中,在我的config/application.rb中我加载路径:config.autoload_paths+=%W(#{Rails.root}/应用程序/类)。但是,当我转到railsconsole时,未加载扩展。是否有一个预定义的位置可以放置我的Rails3扩展方法?或者,一种预先定义的方式来添加它们?我知道Rails有自己的数组扩展方法。我应该将我的添加到active_support/core_ext/array/conversion

  9. ruby-on-rails - 事件管理员和自定义方法 - 2

    这是我在ActiveAdmin中的自定义页面ActiveAdmin.register_page"Settings"doaction_itemdolink_to('Importprojects','settings/importprojects')endcontentdopara"Text"endcontrollerdodefimportprojectssystem"rakedataspider:import_projects_ninja"para"OK"endendend我想做的是,当我单击“导入项目”按钮时,我想在Controller中执行rake任务。但是我无法访问该方法。可能是什

  10. ruby - 如何在 ruby​​ 中复制目录结构,不包括某些文件扩展名 - 2

    我想编写一个ruby​​脚本来递归复制目录结构,但排除某些文件类型。因此,给定以下目录结构:folder1folder2file1.txtfile2.txtfile3.csfile4.htmlfolder2folder3file4.dll我想复制这个结构,但不包含.txt和.cs文件。因此,生成的目录结构应如下所示:folder1folder2file4.htmlfolder2folder3file4.dll 最佳答案 您可以使用查找模块。这是一个代码片段:require"find"ignored_extensions=[".cs"

随机推荐