ブラウザで消える要素を検査するにはどうすればよいですか?


152

マウスが離れると消える要素をどのように検査できますか? 消えるドロップダウンの例

ID、クラスなどなんかわかりませんが調べてみたいです。

私が試したソリューション:

コンソール内でjQueryセレクターを実行します$('*:contains("some text")')が、主に要素が非表示ではなく、おそらくDOMツリーから削除されたため、運がありませんでした。

DOMツリーの変更を手動で検査しても、何が変更されたかを知るには速すぎるように見えるため、何も得られません。

成功:

イベントブレークポイントで成功しています。具体的には-私の場合はマウスダウン。Sources-> Event Listener Breakpoints-> Mouse-> mousedownChromeで移動するだけです。その後、検査したい要素をクリックし、中Scope Variablesにはいくつかの便利な指示がありました。


2
ソースを使用してブレークポイントに到達しませんでしたが、あなたの質問は役に立ちました。コンソールで次のスクリプトを実行しdocument.body.addEventListener('mouseup',function(){ debugger; })ました。
HMR 2018年

あなたはロックします。サブツリーがクリックするといつでも削除されるため、リストアイテムのHTMLを表示できなかったReact-Selectコントロールにこの問題がありました。Seleniumを使用してクリックを自動化するには、アイテムIDが必要でした。ありがとう!
araisbec

回答:


177

(この回答はChromeデベロッパーツールにのみ適用されます。以下の更新を参照してください。)

消える要素を含む要素を見つけます。要素を右クリックして、[ブレーク...]> [サブツリーの変更]を適用します。これにより、要素が消える前にデバッガーの一時停止がスローされます。これにより、一時停止状態の要素と対話できます。

ここに画像の説明を入力してください

2019年10月22日の更新:v。70のリリースにより、FireFoxはついにこの種のデバッグをサポートするように見えます2 3

ここに画像の説明を入力してください


1
混乱を避けるために、イベントをトリガーしている間、デバッガーは一時停止します。つまり、場所名を入力します。画面が一時停止したら、DOM自体の再生ボタンを押すだけで、イベントをトリガーできます。
ディランピアス

これは、ページが右クリックをキャプチャし、右クリックで独自の処理を行う場合は機能しません。
Michael

これは、同じコンテナ内の2つのダイアログの最初のダイアログでは機能しません
Still_learning

@Still_learning「同じコンテナ内の2つのダイアログ」の意味を説明してください。
arxpoetica

<v-container><v-dialog></v-dialog><v-dialog></v-dialog></v-container>-私の場合、最初のダイアログは、データベースからデータが到着するまで約1秒しか表示されません
Still_learning

92

Chromeの代替方法:

  • devTools(F12)を開きます。
  • 「ソース」タブを選択します。
  • 目的の要素が表示されている間にF8(またはCtrl + /)を押します。これにより、スクリプトの実行が中断され、表示されているとおりにDOMが「凍結」されます。
  • この時点から、Ctrl + Shift + Cを使用して要素を選択します。

3
パーフェクト!! これはまさに私が欲しかったことです
ダニエル・ロイタートン

2
これは、[ソース]タブで開発者ツールを既に開いている場合にのみ機能することに気付きました。
hbulens

3
コードの実行を停止しますが、要素はまだ消えています(Reactを使用しています)。
Lorem Ipsum Dolor 2018

私のChromeはF8またはCrtl + \(Crtl + /ではない)と表示します。また、Crtl + \が私の場合は機能しません...
Roger Veciana

これはGoogleビデオコントロールのポップアップでは機能しませ ...キーを押すとすぐにコントロールがビューからフェードアウトし、フリーズが発生する前に完全にフェードアウトします。
Michael

18
  1. コンソールを開く
  2. 入力する setTimeout(()=>{debugger;},5000);
  3. Enterキーを押します

要素が表示されるまで5秒かかります。表示されたら、デバッガーがヒットするまで待ちます。再開しない限り、要素で遊ぶことができ、消えることはありません。


上記の手順を毎回繰り返さないようにするための便利なヒント:

これをブックマークレットとして追加します。

  1. ページをブックマーク
  2. この新しいブックマークを編集
  3. URL /場所を次で置き換えます: javascript:(function(){setTimeout(()=>{debugger;},5000);})();

次回これを使用するときは、このブックマークをクリック/タップしてください。


1
これは、消える要素をデバッグするための最も速くて最も安定した方法です^
warmwhisky

8

MacでChromeを使用しています。上記の手順を実行しましたが、もう少し説明しようと思います。

  1. 右クリックして要素を検査します。
  2. ソースタブに移動します。
  3. 次に、要素にカーソルを合わせます。
  4. 次に、キーボードF8 または を使用しますCommand(Window) \。静的な状態で画面を一時停止し、ホバーアウト時に要素が消えることはありません。

1
詳細な説明をありがとう、ありがとう!極度の器用さを示した後-ボタンをクリックし、を押しCtr + Shift + C、マウスを要素の上に移動し、F81秒半のスペース内で押す-ようやく要素を検査可能モードにした
Still_learning

2

Firebugでは、このためのさまざまなソリューションがあります。

  1. HTMLパネル内でBreak On Mutateを使用できます。(これを使用すると、それがどの要素であるかを確認することもできます)
  2. 要素を右クリックして、[ Firebugで要素を検査 ]を選択できます

また、特定のイベントを一時的にブロックする方法を要求する問題551に従うこともできます。

編集:

どの要素であるかを確認するには、HTMLパネルオプションの [変更強調表示][変更を展開] 、[変更ビュースクロール]を有効にして、要素をHTMLパネル内に表示することもできます。

セバスチャン


Chromeにもまともな検査官がいます。問題は-要素を右クリックすると、私の場合それが消えてしまうことです。ChromeにはBreak on DOM mutateもあります。これの問題-動的に生成されるため、どの要素であるかわかりません
lukas.pukenis

1
回答を編集して、それがどの要素であるかを知る方法のヒントを与えました。
Sebastian Zartner、2013年

2

私の場合、Google Chromeで再帰的に展開オプションを使用しました:

手順は次のとおりです。

  1. ドロップダウンフィールドを調べる
  2. 動的DOMを見つけます(紫色のハイライト)
  3. その動的DOMを右マウスクリックします
  4. [再帰的に展開 ]を選択しますここに画像の説明を入力してください
  5. すべての要素があることがわかります

ここにデモがあります:

ここに画像の説明を入力してください


2

要素をマウスでホバーし、F8(Chromeではthis)を押してスクリプトの実行を一時停止します。ホバー状態は表示されたままになります。

[ソース]タブが表示されます。[要素]タブに戻ります。このタイムコードは消えません。


0

要素の下のインスペクタに表示される要素と非表示になる要素を表示できます。表示されているときに要素に移動すると、要素が非表示になったり、ステータスが変化したときにcssが変化したりするのを確認できるはずです。

これは、firefoxのfirebugまたはchromeのビルド済みインスペクターで可能です。


1
はい。変更はDOMで非常に速く発生し、ページはDOMを大幅に変更することを述べましたが、必要な要素をあらゆる場所の
一連の

たとえば、console.logを使用して、何が起こっているかをトレースしてみてください。たとえば、チェックしようとしている関数の冒頭で、オブジェクトのcssなどを表示できます。または、変更が適切に機能していることを確認してから速度を変更して、たとえばjqueryでhide( 'slow')にしたい
matpol

問題は-それは私自身のコードベースではなく、ファイルを単純に検索しても何も起こらないレガシーの大きな古いコードベースです.. :)
lukas.pukenis

また、ページで使用されているファイルをインスペクターで表示することもできます。壊れるまでそれらを削除し、壊れたファイルを調べてそこから移動します。実際のファイルもいつでも検索できます。
matpol 2013年


0

同じ問題がありましたが、Firefoxを使用しています。inspect要素を開くと解決策が見つかるとすぐに消えます。4つのダッシュ(設定)を開き、Web開発者>デバッガーに移動し、すぐにF8キーを押します。キックしてデベロッパーツールを開いたことを検出する前

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.