ホームページ >バックエンド開発 >Python チュートリアル >Selenium `.text` と `.get_attribute('innerHTML')`: それぞれをいつ使用する必要がありますか?
Selenium を使用して Web 要素と対話する場合、テキストの内容は、さまざまなアプローチを通じて実現できます。これらには、.text と .get_attribute("innerHTML") があります。これらは互換性があるように見えますが、この 2 つのインスタンスと、一方が他方よりも適切な場合の特定のインスタンスには根本的な違いがあります。
.get_attribute("innerHTML" ) は、要素のすべてのコンテンツとマークアップを含む、要素の innerHTML を取得します。このメソッドは、最初に指定された名前のプロパティの取得を試みます。プロパティが存在しない場合は、同じ名前の属性を返します。どちらも見つからない場合は、None を返します。
真実であるとみなされる値 (true または false に相当) はブール値としてレンダリングされます。逆に、None 以外の他のすべての値は文字列として返されます。存在しない属性またはプロパティの場合は、None が返されます。
Arguments:
例:
# Get the innerHTML of an element html = target_element.get_attribute("innerHTML")
.text は、マークアップや要素を除いた要素のテキスト コンテンツを取得します。スタイリング。
定義:
def text(self): """The text of the element.""" return self._execute(Command.GET_ELEMENT_TEXT)['value']
例:
# Get the text of an element text = target_element.text
.text と .text の表面的な類似性にもかかわらず、 .get_attribute("innerHTML") には考慮すべき重要な違いがあります:
Web ページを読み込むとき、ブラウザは HTML とDOM オブジェクトを作成します。 HTML コードで定義された属性は、これらの DOM オブジェクトのプロパティになります。ただし、属性が特定の要素の標準ではない場合、対応するプロパティはありません。
そのような場合、次のメソッドを使用して属性にアクセスできます:
HTML の標準属性は通常、対応するプロパティと同期されます。これは、属性が変更されるとプロパティが自動的に更新され、その逆も同様であることを意味します。
Python では、属性はドット表記 (例: someObj) を使用してアクセスされます。 。名前)。これは、インスタンス変数にすることも、プロパティとして定義された特殊な getter および setter メソッドを通じてアクセスすることもできます。
要素のコンテンツを抽出するときに .text と .get_attribute("innerHTML") のどちらを選択するかは、次の要素によって異なります。自動化タスクの特定の要件。マークアップやスタイルを使用せずに表示テキストを取得することが目的の場合は、.text が最適です。あるいは、すべての要素とその書式設定を含む HTML コンテンツの完全な表現が必要な場合は、 .get_attribute("innerHTML") が適切な選択です。
以上がSelenium `.text` と `.get_attribute('innerHTML')`: それぞれをいつ使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。