Maison >interface Web >tutoriel CSS >Comment trouver un élément Div avec plusieurs noms de classe dans Selenium ?

Comment trouver un élément Div avec plusieurs noms de classe dans Selenium ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-27 06:26:10556parcourir

How to Find a Div Element with Multiple Class Names in Selenium?

Comment identifier un élément Div avec plusieurs noms de classe

Lors de l'interaction avec des éléments Web, le ciblage des éléments à l'aide de leurs noms de classe peut être crucial. Cependant, l'annotation @FindBy de Selenium n'autorise qu'un seul nom de classe dans le paramètre className. Cela peut être limitant, car les éléments ont souvent plusieurs noms de classe.

Approches alternatives

Pour surmonter cette limitation, envisagez les alternatives suivantes :

1. Utilisez le paramètre XPath

XPath vous permet d'utiliser des expressions complexes pour identifier des éléments. Pour des correspondances de classe exactes, vous pouvez utiliser la syntaxe suivante :

@FindBy(xpath = "//div[@class='value test']")
@CacheLookup
private WebElement test;

2. Utilisez contain(@class) dans XPath

Si l'élément peut avoir n'importe quelle combinaison des noms de classe spécifiés, vous pouvez utiliser l'expression contain(@class) :

@FindBy(xpath = "//div[contains(@class, 'value') and contains(@class, 'test')]")
@CacheLookup
private WebElement test;

3. Utiliser les sélecteurs CSS

Les sélecteurs CSS offrent un moyen flexible de cibler des éléments en fonction de plusieurs noms de classe. La syntaxe suivante vous permet de faire correspondre des éléments avec n'importe quelle combinaison des noms de classe spécifiés :

@FindBy(css = "div[class*='value test']")
@CacheLookup
private WebElement test;

Comprendre la correspondance de classe XPath

Il est important de noter que la correspondance de classe XPath les règles diffèrent légèrement des sélecteurs CSS. Si vous avez besoin d'une correspondance exacte, utilisez [@class='value test']. Pour faire correspondre des éléments avec n'importe quel ordre ou combinaison de noms de classe, utilisez [contains (@class, 'value') et contain (@class, 'test')].

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn