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 サイトの他の関連記事を参照してください。