28

いくつかのモジュールを有効にするためにクロムフラグの設定を自動化するにはどうすればよいですか?

私は、chrome://flags を開いていくつかのモジュールを有効にする必要があるアプリケーションを設計しました。そうしないと、アプリケーション全体が機能しません。通常のユーザーにとって、このような小さな変更を行うのは悪夢です。

サーバーサイドスクリプトまたはプラグインから使用するJavaScriptまたはGoogleアプリエンジンまたはその他の方法はありますか?これをクリックすると、chrome://flags内のモジュールが自動的に有効になりますか?

4

2 に答える 2

21

ほとんどすべての Chrome フラグは、コマンド ラインから設定できます。コマンド ライン パラメータの完全なリストを次に示しますが、新しいバージョンではさらに多くのパラメータがあることに注意してください。

編集: これは、Chrome コマンド ライン スイッチの包括的で最新のリストです。

したがって、基本的には、これらのコマンド ライン フラグを設定した状態で chrome を起動します。それが最善の方法です。

これは、Javascript またはその他の動作を使用して手動で設定することはできません。これをプログラムで (コマンド ライン フラグ以外で) 設定できる唯一の方法は、Capybara (ブラウザを開いて制御できるツールで、通常は自動テストの実行に使用されます) を使用し、Chrome を開き、手動で「chrome://flags」に移動することです。 」をクリックし、必要なコンボ ボックスをクリックします。

EDIT:Watirもカピバラと同じくらい良いです

Watir はもう1 つのブラウザー自動化フレームワーク (Capybara に似ています) ですが、セットアップと開始がはるかに簡単です。Web ページを開いてコンボ ボックスを選択する方法のと、Chrome で使用する手順を次に示します。次のような単一の ruby​​ ファイルを作成できます。

require 'watir-webdriver'
browser = Watir::Browser.new :chrome
browser.goto "chrome://flags"
browser.select_list(:id => <combo box id>).select("Enabled")
...

WebDriver 使用時のフラグの永続化

Chrome に--user-data-dirは、すべてのプロファイル設定が保存されるスイッチがあります。Chrome が (Windows/Mac/Linux で) 使用する既定のディレクトリは [こちらに記載されています。通常、WebDriver は一時フォルダーで起動し、--user-data-dir使用後に一時フォルダーを削除します。そのため、Chrome を再度実行すると、設定したフラグはすべて失われます。したがって--user-data-dir、ユーザーのデフォルトのプロファイル ディレクトリに設定すると、設定したフラグはすべて保持されます。

編集 2 : chrome コマンドライン フラグの包括的なリストを追加

編集 3 : Webdriver でフラグを永続化するための手順を追加

于 2013-06-16T10:54:05.453 に答える
6

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();
}

chrome.sendは確かに有効な方法であり、

これは、同じファイル (chrome://flags/flags.js) からの別のスニペットです。

/**
 * Asks the C++ FlagsDOMHandler to restart the browser (restoring tabs).
 */
function restartBrowser() {
  chrome.send('restartBrowser');
}

手動で呼び出すとchrome.send ('restartBroswer')、実際にブラウザーが再起動されました。

これにより、フラグの設定を自動化するために必要なすべての機能が提供されると思います。ソースを調べて必要なフラグを見つけてから、適切な呼び出しchrome://flagsを設定する必要があります。chrome.send

于 2013-06-16T18:58:26.763 に答える