ホームページ > バックエンド開発 > Python チュートリアル > Selenium WebDriver で動的に変化する HTML 要素からテキストを取得する方法

Selenium WebDriver で動的に変化する HTML 要素からテキストを取得する方法

Linda Hamilton
リリース: 2024-11-03 04:36:03
オリジナル
1032 人が閲覧しました

How to Retrieve Text from Dynamically Changing HTML Elements in Selenium WebDriver?

Python の Selenium WebDriver を使用したテキスト要素へのアクセス

Selenium WebDriver を使用した Web オートメーションでは、HTML 要素からテキスト コンテンツを取得することが不可欠です。ただし、ここで示したケースのように、ページのリロード時に要素の ID が動的に変更される場合、問題が発生する可能性があります。

元のコード

提供される元のコード:

text = driver.find_element_by_class_name("current-stage").getText("my text")
ログイン後にコピー

クラス名 "current-stage" で要素を検索し、そのテキストを抽出しようとします。これは "my text" であると想定されます。

HTML 構造

提供される HTML 構造は、次のように、「current-text」というクラス名と動的 ID を持つテキスト要素を示しています。

<span class="current-text" id="yui_3_7_0_4_1389185744113_384">my text</span>
ログイン後にコピー

The Issue

元のコードの問題は XPath に関連するものではなく、getText メソッドの誤用に関連しています。 getText に引数を渡すと、要素のテキストを取得するのではなく、要素のテキストを設定しようとします。

正しいアプローチ

要素からテキストを抽出する正しいアプローチは次のとおりです。引数なしで getText を使用するには、次のようにします。

text = driver.find_element_by_class_name("current-stage").getText()
ログイン後にコピー

このコードは、要素のテキスト コンテンツを取得し、テキスト変数に保存します。

結果の検証

期待されるテキストを getText メソッドに渡す代わりに、次のように、assertEqual メソッドを使用して取得したテキストを後で検証できます。

expected_text = "my text"
actual_text = driver.find_element_by_class_name("current-stage").getText()
self.assertEqual(expected_text, actual_text)
ログイン後にコピー

このアプローチでは、取得したテキストが確実に期待値と一致します。

以上がSelenium WebDriver で動的に変化する HTML 要素からテキストを取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート