― MozillaZine.jp フォーラムは Mozilla 製品に関する情報交換の場です ―



All times are UTC + 9 hours

返信する
ユーザー名:
件名:
オプション:
BBCode: ON
[img]: ON
[flash]: OFF
[url]: ON
スマイリー: ON
BBCode を無効にする
フォントサイズ:
フォントカラー
スマイリーを無効にする
URL を自動的にパースしない
ユーザエージェントを表示する
認証コード
KCaptcha by Nikita_Sp
   

トピックのレビュー - コマンドラインから Firefox をリフレッシュする方法
作成者 メッセージ
  記事の件名:  Re: コマンドラインから Firefox をリフレッシュする方法  引用付きで返信する
お二方とも,ご回答いただきありがとうございました.
最終的に,プロファイルを明示的に指定することで上手く行きました.

EarlgreyTea さんが書きました:
もしプロファイルを初期化すればいいのであれば、--profile <path> でプロファイルのパスを指定してみるのはどうでしょう。
あらかじめ必要な既定値を用意したプロファイルを作っておき、テストごとにそれをコピーし、そのパスを指定してテスト実行、終わったら削除する。
こうすれば、テストスクリプト側でコントロールできるかと思います。
偶然的通行人 さんが書きました:
新しいユーザープロファイルを生成するコマンドラインオプションはあります。(-CreateProfile)

上記のご意見を元に色々と動かしてみたのですが,適当な新規プロファイルを作成して,以降そのプロファイルを明示的に指定し続けることで,問題なく動作するようになりました:

コード:
# 適当な新規プロファイル 'hoge' の作成
$ firefox -headless -CreateProfile hoge

# プロファイル 'hoge' を指定して実行
$ firefox -headless -P hoge <URL>

なぜデフォルトプロファイルでは数回実行すると動作しなくなるのか,理由は不明のままですが,とりあえずこれで実験ができます.
お手数お掛けしました.ありがとうございました.
投稿記事 Posted: 2018年7月08日(日) 14:35
  記事の件名:  Re: コマンドラインから Firefox をリフレッシュする方法  引用付きで返信する
横から失礼します。

すでにご覧になっておられるかと思いますが、MDN に次のようなページがあります。
(参考)
・コマンドラインオプション - Mozilla | MDN
developer.mozilla.org/ja/docs/Mozilla/Command_Line_Options

ここを見る限りでは、Firefox のリフレッシュに特化したコマンドラインオプションはないようです。
しかし、新しいユーザープロファイルを生成するコマンドラインオプションはあります。(-CreateProfile)

Mattsun さんが書きました:
現在 Firefox をヘッドレスモードで起動し (firefox --headless <URL>),JavaScript コードを実行する実験を行っています.
その過程で,ヘッドレスモードでの起動 → 終了を 5 回ほど繰り返すと,Firefox が正常に動作しなくなるという現象に出会いました.
コマンド実行後のコンソールには,通常通り「*** You are running in headless mode.」と表示されているのですが,ページに埋め込まれている JS コードが実行されない状況です.

上記のページにある
-purgecaches
の項目も参考になさってはいかがでしょうか。


開発者とは無縁なシロウトの話にすぎませんが以上です。的外れな話だったらすみません。


(おことわり)
現在、健康上の制約により不定期な書き込みしかできなくなっています。すぐに応答できない場面がかなり多くなりますことを、ご容赦ください。
投稿記事 Posted: 2018年7月07日(土) 16:29
  記事の件名:  Re: コマンドラインから Firefox をリフレッシュする方法  引用付きで返信する
Mattsun さんが書きました:
現在 Firefox をヘッドレスモードで起動し (firefox --headless <URL>),JavaScript コードを実行する実験を行っています.
ヘッドレスモードは使ったことがないのですが、MDN Web Docsでは、Node.jsとselenium-webdriverを使った例が紹介されていますね。
Linux 環境を用意するのが面倒だったので、とりあえず Windowsのコマンドプロンプト環境で試してみました。

コード:
firefox.exe --headless --screenshot ss.jpg https://www.yahoo.co.jp/
これだと、Yahoo!トップのスクリーンショットを保存して終了するのですが、
コード:
firefox.exe --headless https://www.yahoo.co.jp/
URLだけだとプロセスが動きっぱなしで、画面が出ないので終了させるにはプロセスをkillする必要がありました。

Mattsun さんが書きました:
その過程で,ヘッドレスモードでの起動 → 終了を 5 回ほど繰り返すと,Firefox が正常に動作しなくなるという現象に出会いました.
Linux では状況は違うかもしれませんが、バックグランドプロセスが溜まってるとかはないでしょうか。

Mattsun さんが書きました:
コマンドラインからリフレッシュしたいと考えています.
そのようなオプションやコマンドは用意されていますでしょうか.
リフレッシュを実行するコマンドラインオプションは無いかと思います。(ちなみに --help で一覧出ます)
上の現象との関連はわかりませんが、もしプロファイルを初期化すればいいのであれば、--profile <path> でプロファイルのパスを指定してみるのはどうでしょう。
あらかじめ必要な既定値を用意したプロファイルを作っておき、テストごとにそれをコピーし、そのパスを指定してテスト実行、終わったら削除する。
こうすれば、テストスクリプト側でコントロールできるかと思います。
投稿記事 Posted: 2018年7月05日(木) 20:29
  記事の件名:  Re: コマンドラインから Firefox をリフレッシュする方法  引用付きで返信する
追記

書き忘れていましたが,OS は Ubuntu 16.04 になります.
宜しくお願いいたします.
投稿記事 Posted: 2018年7月05日(木) 14:58
  記事の件名:  コマンドラインから Firefox をリフレッシュする方法  引用付きで返信する
こんにちは.お世話になります.
CLI で Firefox をリフレッシュすることはできるでしょうか.

現在 Firefox をヘッドレスモードで起動し (firefox --headless <URL>),JavaScript コードを実行する実験を行っています.
その過程で,ヘッドレスモードでの起動 → 終了を 5 回ほど繰り返すと,Firefox が正常に動作しなくなるという現象に出会いました.
コマンド実行後のコンソールには,通常通り「*** You are running in headless mode.」と表示されているのですが,ページに埋め込まれている JS コードが実行されない状況です.

このとき,GUI で Firefox を起動すると,ホームが表示される代わりに「Firefox Safe Mode」というウィンドウが表示されます.
メッセージには,セーフモードで起動するか Firefox をリフレッシュするか選択するように書かれています.
メッセージに従って Firefox をリフレッシュすると,その後は再びヘッドレスモードで正常にスクリプトが実行できるようになります.

根本的な解決にはなりませんが,とりあえず定期的に Firefox をリフレッシュしながら実験を行いたいのですが,実験はプログラムからコントロールしたいため,コマンドラインからリフレッシュしたいと考えています.
そのようなオプションやコマンドは用意されていますでしょうか.

長くなりましたが,状況は以上のようになります.
version: Mozilla Firefox 60.0.2

宜しくお願いいたします.
投稿記事 Posted: 2018年7月05日(木) 14:21

All times are UTC + 9 hours


ページ移動:  
Powered by MozillaZine.jp® Forum Software © phpBB Group , Almsamim WYSIWYG
Japanese translation principally by ocean