JavaScript_javascript のヒントで Web ページ内の要素の位置を計算する
プロジェクトのニーズにより、正常に見えることを確認するためにテスト中に Web ページ要素のスクリーンショットが必要です。以前方法を紹介する記事を書きました。まず、WebDriver を使用して全画面のスクリーンショットを撮り、次にターゲット要素 (DOM 要素) の位置に応じてスクリーンショットをトリミングし、必要な位置を保持します。
iframe というものを理解するまで、そのコードは正常に動作していました。 iframe (通常のフレームも同じですが、フレームは現在あまり一般的ではありません。ここでは例として iframe のみを使用します) 内のコンテンツは独立した Web ページとみなされ、Window オブジェクトも親 Web ページから分離されます。 WebDriver の WebElement.getLocation() メソッドは、この WebElement とそれが配置されている Window との位置関係のみを返すことができます。実装には問題ありませんが、全画面スクリーンショットには iframe の内容が含まれるだけでなく、コンテンツには親ページのコンテンツも含まれる場合があるため、切り取るときにスクリーンショット内のターゲット要素の位置を知る必要があります。そこで問題は、どの会社が最高の掘削機技術を持っているかということです。スクリーンショットに対する要素の位置を計算するにはどうすればよいですか?
この問題は別のカテゴリで議論する必要があります。その理由は、Chrome と Firefox ではスクリーンショットの動作が異なるためです。 Chrome のスクリーンショットは、現在表示されている (ビューポート) Web ページのコンテンツです。たとえば、Web ページの実際のサイズが Chrome のウィンドウ サイズを超える場合、Chrome のスクリーンショットの位置に応じてウィンドウに表示されるコンテンツが異なります。表示される内容。したがって、現在表示されているコンテンツに対するターゲット要素の位置を計算する必要があります。 Firefox は、現在のウィンドウ サイズに関係なく、Web ページ全体のコンテンツをキャプチャできる方法を使用します。したがって、Firefox の場合、要素の絶対位置 (絶対位置) を計算する必要があります。
要素の位置を取得するには、Element.getBoundingClientRect() メソッドを使用する必要があります。このメソッドは、この要素が配置されている Windows の現在表示されているコンテンツに対するこの要素の位置を返します。この要素は、上、左、右、下という 4 つの値で表されます。クリッピングサイズについては、計算せずに要素自体の長さと幅から取得できます。最上位の Window に対するターゲット要素の位置を計算するには、親 Window の上部と左を順番に追加するだけです。コードは次のとおりです:
function calcViewportLocation(element) { var currentWindow = window; var rect = element.getBoundingClientRect(); // 元素的位置 var top = rect.top; var left = rect.left; while (currentWindow.frameElement != null) { // 处理父级 Window element = currentWindow.frameElement; currentWindow = currentWindow.parent; rect = element.getBoundingClientRect(); if (rect.top > 0) { top += rect.top; } if (rect.left > 0) { left += rect.left; } } return [Math.round(top), Math.round(left)]; }
上記のコードは Chrome では機能しますが、Firefox では要素の絶対位置を計算する必要もあります。ここでは Window.pageXOffset が必要です。 pageXOffset (scrollX) は、現在の Window の水平スクロール バーのスクロール位置を表し、この値を左上に追加して、ターゲット要素の水平絶対位置を取得します。もちろん、iframe も特別に扱うことができます:
function calcAbsolutLocation(element) { var top = 0; var left = 0; var currentWindow = window; while (element != null) { rect = element.getBoundingClientRect(); var pageYOffset = currentWindow.pageYOffset; var pageXOffset = currentWindow.pageXOffset; if (typeof pageYOffset === 'undefined') { // IE8 currentDocument = currentWindow.document; var bodyElement = (currentDocument.documentElement || currentDocument.body.parentNode || currentDocument.body); pageYOffset = bodyElement.scrollTop; pageXOffset = bodyElement.scrollLeft; } top += rect.top + pageYOffset; left += rect.left + pageXOffset; element = currentWindow.frameElement; currentWindow = currentWindow.parent; if (element != null) { style = window.getComputedStyle(element); top += parseInt(style.borderTopWidth, 10); left += parseInt(style.borderLeftWidth, 10); } } return [Math.round(top), Math.round(left)]; }
IE8はpageXOffsetとscrollXをサポートしていないため、IE8では特別な処理、つまりコード中の「IE8」とマークされている部分が必要になります。これら 2 つの Javascript コードを前の記事の WebElement.getLocation() に置き換えることで、iframe 内の特定の要素のスクリーンショットを撮ることができます。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









環境変数機能は、システム内で設定プログラムを実行するために不可欠なツールですが、最新の win11 システムでは、設定方法がわからないユーザーもまだ多くいます。 win11 環境変数の開き方. ぜひ参加して操作方法を学びましょう。 win11 環境変数はどこですか: 1. まず「win+R」と入力して、実行ボックスを開きます。 2. 次に、コマンド「controlsystem」を入力します。 3. 開いたシステム情報インターフェイスで、左側のメニューから「システムの詳細設定」を選択します。 4. 次に、開いた「システムのプロパティ」ウィンドウの下部にある「環境変数」オプションを選択します。 5. 最後に、開いた環境変数で、必要に応じて関連する設定を行うことができます。

すべての Windows システムには起動パスがあり、そこにファイルやソフトウェアを追加すると、起動時にそのパスが開かれます。しかし、多くの友人は win11 の起動パスがどこにあるのか知りませんが、実際には、C ドライブ上の対応するフォルダーに入力するだけで済みます。 Win11 スタートアップ パス: 1. ダブルクリックして「この PC」を開きます。 2. パス「C:\ProgramData\Microsoft\Windows\StartMenu\Programs\Startup」をパス ボックスに直接貼り付けます。 3. ここに win11 の起動パスがあり、起動後にファイルを開きたい場合は、そのファイルを置くことができます。 4. このパスに従って入力できない場合は、非表示になっている可能性があります。

General Matrix Multiplication (GEMM) は、多くのアプリケーションやアルゴリズムの重要な部分であり、コンピューター ハードウェアのパフォーマンスを評価するための重要な指標の 1 つでもあります。 GEMM の実装に関する徹底的な調査と最適化は、ハイ パフォーマンス コンピューティングとソフトウェア システムとハードウェア システムの関係をより深く理解するのに役立ちます。コンピューター サイエンスでは、GEMM を効果的に最適化すると、計算速度が向上し、リソースが節約されます。これは、コンピューター システムの全体的なパフォーマンスを向上させるために非常に重要です。 GEMM の動作原理と最適化方法を深く理解することは、最新のコンピューティング ハードウェアの可能性をより有効に活用し、さまざまな複雑なコンピューティング タスクに対してより効率的なソリューションを提供するのに役立ちます。 GEMMのパフォーマンスを最適化することで

WORD は強力なワード プロセッサです。Word を使用してさまざまなテキストを編集できます。Excel の表では、足し算、引き算、乗算の計算方法をマスターしました。そのため、Word の表で数値の足し算を計算する必要がある場合は、乗数を引くにはどうすればよいですか? 計算には電卓しか使用できませんか?答えはもちろん「いいえ」です。WORD でも実行できます。今日は、Word文書の表で加算、減算、乗算、除算などの基本的な演算を数式を使って計算する方法を説明しますので、一緒に学びましょう。そこで、今日は、WORD 文書で加算、減算、乗算、除算を計算する方法を詳しく説明します。ステップ 1: WORD を開き、ツールバーの [挿入] の下にある [表] をクリックし、ドロップダウン メニューに表を挿入します。

スター ドーム鉄道のクローカー 映画テレビ パークには、合計 20 羽の折り紙の鳥がいます。多くのプレイヤーは、クロッカー映画テレビ パークのどこに折り紙の鳥があるのか知りません。編集者は、誰もがわかるように、各折り紙の鳥の場所をまとめました。検索して、具体的な内容については、クローカー映画テレビ公園の折り紙の鳥の場所に関するこの最新のまとめをご覧ください。本海スタードーム鉄道のご案内:クルックムービーパーク1階2、クルックムービーパーク2階のオリガミバード スタードーム鉄道

pip によってインストールされるパッケージの保存場所の詳細については、特定のコード サンプルが必要です。Pip は、Python 言語で一般的に使用されるパッケージ管理ツールです。Python パッケージのインストール、アップグレード、管理を簡単に行うために使用されます。 pip を使用してパッケージをインストールすると、対応するパッケージ ファイルが PyPI (Python Package Index) から自動的にダウンロードされ、指定された場所にインストールされます。では、pip によってインストールされたパッケージはどこに保存されるのでしょうか?これは、多くの Python 開発者が遭遇する問題です。この記事では、pip によってインストールされるパッケージの場所について詳しく説明し、次のことを提供します。

コンピューターから長時間離れる場合は、コンピューターを保護するためにコンピューターをシャットダウンするのが最善です。では、win11 ではシャットダウンはどこにあるのでしょうか? 実際、一般的に言えば、スタート メニューを開くだけで次のことがわかります。その中にあるシャットダウンボタン。 Windows 11 をシャットダウンする場所: 回答: スタート メニューの電源ボタン内。 1. まず、下部のタスクバーにある「Windows ロゴ」をクリックして「スタートメニュー」を開きます。 2. 開いた後、図に示すように、右下隅に「電源」ボタンが見つかります。 3. 電源ボタンをクリックすると、「シャットダウン」が表示されるので、クリックしてシャットダウンします。 4. クラッシュなどの特別な状況によりコンピュータをシャットダウンできない場合は、コンピュータの「電源ボタン」を直接長押しして強制的にシャットダウンできます。

中国で有名なショートビデオプラットフォームとして、Kuaishou は多くのクリエイターに自分の才能を披露し、人生を共有する機会を提供します。動画をアップロードする際、初心者クリエイターの中には動画の投稿場所を変更する方法に戸惑う方もいるかもしれません。この記事では、Kuaishou ビデオの公開場所を変更する方法を紹介し、このプラットフォームを有効に活用して作品を紹介できるように、Kuaishou ビデオ公開に関するいくつかのヒントを共有します。 1. Kuaishou はどこで公開されていますか?またその場所を変更するにはどうすればよいですか? 1. 公開インターフェイス: Kuaishou APP で、[公開] ボタンをクリックしてビデオ公開インターフェイスに入ります。 2. 場所情報: 公開インターフェースに「場所」列があり、クリックして場所選択インターフェースに入ります。 3. 場所を変更する: 場所選択インターフェイスで、[場所] ボタンをクリックして現在の場所を表示します。場所を変更したい場合は「場所」をクリックしてください
