メインコンテンツにスキップ

getHTML

セレクタによって指定されたDOM要素のソースコードを取得します。デフォルトでは、要素に含まれるすべての要素のシャドウルートを自動的に貫通します。

使用法
$(selector).getHTML({ includeSelectorTag, pierceShadowRoot, removeCommentNodes, prettify })
パラメータ
名前タイプ詳細
optionsGetHTMLOptionsコマンドオプション
options.includeSelectorTag
オプション
Booleantrueの場合、セレクタ要素タグを含みます(デフォルト:true
options.pierceShadowRoot
オプション
Booleantrueの場合、DOM内のすべてのWebコンポーネントのシャドウルートのコンテンツを含みます(デフォルト:true
options.removeCommentNodes
オプション
Booleantrueの場合、HTMLからすべてのコメントノードを削除します。例:<!--?lit$206212805$--><!--?lit$206212805$-->(デフォルト:true
options.prettify
オプション
Booleantrueの場合、HTML出力は整形されます(デフォルト:true
index.html
<div id="test">
<span>Lorem ipsum dolor amet</span>
</div>
getHTML.js
it('should get html for certain elements', async () => {
var outerHTML = await $('#test').getHTML();
console.log(outerHTML);
// 出力:
// "<div id="test"><span>Lorem ipsum dolor amet</span></div>"

var innerHTML = await $('#test').getHTML({ includeSelectorTag: false });
console.log(innerHTML);
// 出力:
// "<span>Lorem ipsum dolor amet</span>"
});
getHTMLShadow.js
it('allows to snapshot shadow dom', async () => {
await browser.url('https://ionicframework.com/docs/usage/v8/button/basic/demo.html?ionic:mode=md')

// スタイルを除いたWebコンポーネントのスナップショットを取得
const snapshot = await $('ion-button').getHTML({ excludeElements: ['style'] })

// スナップショットをアサート
await expect(snapshot).toMatchInlineSnapshot(`
<ion-button class="md button button-solid ion-activatable ion-focusable hydrated">Default
<template shadowrootmode="open">
<button type="button" class="button-native" part="native">
<span class="button-inner">
<slot name="icon-only"></slot>
<slot name="start"></slot>
<slot></slot>
<slot name="end"></slot>
</span>
<ion-ripple-effect role="presentation" class="md hydrated">
<template shadowrootmode="open"></template>
</ion-ripple-effect>
</button>
</template>
</ion-button>
`)
});
戻り値
  • <String> return: 指定された要素のHTML

Welcome! How can I help?

WebdriverIO AI Copilot