Selenium で複数のクラス名を持つ要素を見つけるにはどうすればよいですか?

DDD
リリース: 2024-11-16 22:14:03
オリジナル
937 人が閲覧しました

How Can I Locate Elements with Multiple Class Names in Selenium?

複数のクラス名を持つ要素のロケーター戦略

複数のクラス名を持つ Web 要素を識別することは、 Java の @FindBy アノテーションなど、スペースで区切られた単一の値。これに対処するには、次の代替戦略を検討してください。

XPath Locators

XPath 式は、クラス名を含む複数の属性に基づいて要素を照合する際の柔軟性を提供します。次の戦略を使用できます:

  • 完全一致: このアプローチでは、指定されたクラス名と正確に一致する要素を希望の順序で識別します。
driver.findElement(By.xpath("//div[@class='value test']"));
ログイン後にコピー
  • Contains Constraint: この戦略は、指定されたクラスを含む要素を検索します
driver.findElement(By.xpath("//div[contains(@class, 'value test')]"));
ログイン後にコピー
  • 複数の制約を含む: 要素を両方のクラス名と一致させるには、and 演算子を使用します:
driver.findElement(By.xpath("//div[contains(@class, 'value') and contains(@class, 'test')]"));
ログイン後にコピー

CSSセレクター

CSS セレクターは、複数のクラス名を持つ要素を選択するための別のオプションを提供します:

  • 完全一致: XPath と同様、このセレクターは一致する要素を識別します。目的の指定されたクラス名order.
driver.findElement(By.cssSelector("div[class='value test']"));
ログイン後にコピー
  • Contains Substring: このセレクターは、指定された部分文字列を含むクラス名を持つ要素を検索します:
driver.findElement(By.cssSelector("div[class*='value test']"));
ログイン後にコピー
  • クラスの組み合わせ: 複数のクラスを持つ要素を検索するには
driver.findElement(By.cssSelector("div.value.test"));
ログイン後にコピー

追加の考慮事項

複数のクラス名を使用する場合は、次の点に注意してください。 :

  • クラス名の順序は、完全一致のマッチング結果に影響を与える可能性がありますロケータ。
  • XPath ロケータは、一般に CSS セレクタよりも遅い傾向があります。
  • CSS セレクタは、すべての Web ブラウザでサポートされているわけではありません。

以上がSelenium で複数のクラス名を持つ要素を見つけるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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