通过 chromedriver 允许 Chrome 71 运行 中的 Flash 内容
Allow Flash content in Chrome 71 running via chromedriver
我一直在使用它来允许 chrome 版本 69 的闪存。
ChromeOptions options = new ChromeOptions();
// disable ephemeral flash permissions flag
options.addArguments("--disable-features=EnableEphemeralFlashPermission");
Map<String, Object> prefs = new HashMap<>();
// Enable flash for all sites for Chrome 69
prefs.put("profile.content_settings.exceptions.plugins.*,*.setting", 1);
options.setExperimentalOption("prefs", prefs);
nestedDriver = new ChromeDriver(options);
chrome 的第 71 版现已删除此实验性功能 (EphemeralFlashPermission)。
我也尝试过使用这些设置,但效果不佳。
prefs.put("profile.default_content_setting_values.plugins", 1);
prefs.put("profile.content_settings.plugin_whitelist.adobe-flash-player", 1);
prefs.put("profile.content_settings.exceptions.plugins.*,*.per_resource.adobe-flash-player", 1);
现在还有其他方法可以使用 chrome 驱动程序启用闪存吗?
我还没有找到任何选项,恐怕永远也找不到。
Windows 的解决方法是使用组策略(通过向注册表添加条目):
reg add HKLM\Software\Policies\Google\Chrome /v DefaultPluginsSetting /d 1 /t REG_DWORD /f
reg add HKLM\Software\Policies\Google\Chrome\PluginsAllowedForUrls /v 1 /d http://* /t REG_SZ /f
reg add HKLM\Software\Policies\Google\Chrome\PluginsAllowedForUrls /v 2 /d https://* /t REG_SZ /f
或者只创建扩展名为 .reg 的文件并将下面的文本放入其中:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google]
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome]
"DefaultPluginsSetting"=dword:00000001
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome\PluginsAllowedForUrls]
"1"="http://*"
"2"="https://*"
然后保存并双击这个文件。
我对此的小解决方法,请联系@doctordrue ;)
from winreg import *
import sys
reg_path = 'Software\Policies\Google\Chrome\PluginsAllowedForUrls'
allow_flash = {'1': 'https://url'}
if sys.platform == 'win32':
try:
try:
RegistryKey = OpenKey(HKEY_LOCAL_MACHINE, reg_path, 0, KEY_ALL_ACCESS)
for K,V in allow_flash.items():
try:
if QueryValueEx(RegistryKey, K)[0] == V: pass
else:
SetValueEx(RegistryKey, K, 0, REG_SZ, V)
except FileNotFoundError:
SetValueEx(RegistryKey, K, 0, REG_SZ, V)
CloseKey(RegistryKey)
except FileNotFoundError:
RegistryKey = CreateKey(HKEY_LOCAL_MACHINE, reg_path)
for K, V in allow_flash.items():
SetValueEx(RegistryKey, K, 0, REG_SZ, V)
CloseKey(RegistryKey)
except:
# write_in_log(traceback.format_exc())
pass
我一直在使用它来允许 chrome 版本 69 的闪存。
ChromeOptions options = new ChromeOptions();
// disable ephemeral flash permissions flag
options.addArguments("--disable-features=EnableEphemeralFlashPermission");
Map<String, Object> prefs = new HashMap<>();
// Enable flash for all sites for Chrome 69
prefs.put("profile.content_settings.exceptions.plugins.*,*.setting", 1);
options.setExperimentalOption("prefs", prefs);
nestedDriver = new ChromeDriver(options);
chrome 的第 71 版现已删除此实验性功能 (EphemeralFlashPermission)。
我也尝试过使用这些设置,但效果不佳。
prefs.put("profile.default_content_setting_values.plugins", 1);
prefs.put("profile.content_settings.plugin_whitelist.adobe-flash-player", 1);
prefs.put("profile.content_settings.exceptions.plugins.*,*.per_resource.adobe-flash-player", 1);
现在还有其他方法可以使用 chrome 驱动程序启用闪存吗?
我还没有找到任何选项,恐怕永远也找不到。
Windows 的解决方法是使用组策略(通过向注册表添加条目):
reg add HKLM\Software\Policies\Google\Chrome /v DefaultPluginsSetting /d 1 /t REG_DWORD /f
reg add HKLM\Software\Policies\Google\Chrome\PluginsAllowedForUrls /v 1 /d http://* /t REG_SZ /f
reg add HKLM\Software\Policies\Google\Chrome\PluginsAllowedForUrls /v 2 /d https://* /t REG_SZ /f
或者只创建扩展名为 .reg 的文件并将下面的文本放入其中:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google]
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome]
"DefaultPluginsSetting"=dword:00000001
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome\PluginsAllowedForUrls]
"1"="http://*"
"2"="https://*"
然后保存并双击这个文件。
我对此的小解决方法,请联系@doctordrue ;)
from winreg import *
import sys
reg_path = 'Software\Policies\Google\Chrome\PluginsAllowedForUrls'
allow_flash = {'1': 'https://url'}
if sys.platform == 'win32':
try:
try:
RegistryKey = OpenKey(HKEY_LOCAL_MACHINE, reg_path, 0, KEY_ALL_ACCESS)
for K,V in allow_flash.items():
try:
if QueryValueEx(RegistryKey, K)[0] == V: pass
else:
SetValueEx(RegistryKey, K, 0, REG_SZ, V)
except FileNotFoundError:
SetValueEx(RegistryKey, K, 0, REG_SZ, V)
CloseKey(RegistryKey)
except FileNotFoundError:
RegistryKey = CreateKey(HKEY_LOCAL_MACHINE, reg_path)
for K, V in allow_flash.items():
SetValueEx(RegistryKey, K, 0, REG_SZ, V)
CloseKey(RegistryKey)
except:
# write_in_log(traceback.format_exc())
pass