如何自动设置chrome标志以启用少量模块?
我有应用程序设计,需要打开chrome:// flags几个模块启用,否则整个应用程序不起作用,对于普通用户来说,它的噩梦做了这么小的改变.
是否有任何javascript或谷歌应用程序引擎或其他方法可以从服务器端脚本或一些插件使用,我可以说点击这个,它会自动启用chrome:// flags中的模块?
Sub*_*has 20
几乎每个Chrome标志都可以通过命令行设置.这是一个非常详尽的命令行参数列表,但请记住,在更新的版本中会有更多!
所以基本上你可以使用这些已设置的命令行标志启动chrome.这是最好的方式.
您无法使用Javascript或其他行为手动设置此项.您可以通过编程方式设置此命令(命令行标志除外)的唯一方法是使用Capybara(可以打开和控制浏览器的工具,通常用于运行自动化测试),打开Chrome,然后手动导航到"chrome:// flags "然后单击必要的组合框.
Watir是另一个浏览器自动化框架(类似于Capybara),但更容易设置和开始.以下是有关如何打开网页并选择组合框的示例,以下是有关在Chrome中使用它的说明.您可以编写一个类似于以下内容的ruby文件:
require 'watir-webdriver'
browser = Watir::Browser.new :chrome
browser.goto "chrome://flags"
browser.select_list(:id => <combo box id>).select("Enabled")
...
Run Code Online (Sandbox Code Playgroud)
Chrome有一个--user-data-dir开关,可以保存所有配置文件设置.Chrome使用的默认目录(在Windows/Mac/Linux上)[ 此处记录.通常,WebDriver --user-data-dir会以临时方式启动,然后在使用后删除临时文件夹.因此,当您再次运行Chrome时,您设置的任何标记都将丢失!因此设置--user-data-dir为用户的默认配置文件目录,然后将保留您设置的任何标志.
编辑2:添加了chrome命令行标志的完整列表
编辑3:添加了在Webdriver中保留标志的说明
在chrome:// flags屏幕中生根我在包含的JS文件中发现了一些有趣的东西:
/**
* Invoked when the selection of a multi-value choice is changed to the
* specified index.
* @param {HTMLElement} node The node for the experiment being changed.
* @param {number} index The index of the option that was selected.
*/
function handleSelectChoiceExperiment(node, index) {
// Tell the C++ FlagsDOMHandler to enable the selected choice.
chrome.send('enableFlagsExperiment',
[String(node.internal_name) + '@' + index, 'true']);
requestFlagsExperimentsData();
}
Run Code Online (Sandbox Code Playgroud)
chrome.send 确实是一种有效的方法,
这是同一个文件的另一个片段(chrome://flags/flags.js)
/**
* Asks the C++ FlagsDOMHandler to restart the browser (restoring tabs).
*/
function restartBrowser() {
chrome.send('restartBrowser');
}
Run Code Online (Sandbox Code Playgroud)
手动调用chrome.send ('restartBroswer')确实重启了浏览器.
我认为这提供了自动设置标志所需的所有功能,您需要遍历chrome://flags源代码以找到所需的标志,然后设置适当的chrome.send调用.
| 归档时间: |
|
| 查看次数: |
25142 次 |
| 最近记录: |