Identification d'un élément Web avec plusieurs classes CSS
Vous rencontrez un problème lors de l'identification d'un élément Web avec plusieurs classes CSS à l'aide de @FindBy annotation. Votre exemple de code démontre l'utilisation de className = "value test", qui ne tient pas compte du fait que les noms de classe CSS peuvent être séparés par des espaces.
Stratégies de correspondance XPath
Pensez à utiliser XPath pour localiser l'élément souhaité. XPath vous permet de faire correspondre des éléments en fonction de critères spécifiques, notamment les noms de classe. Voici quelques stratégies de correspondance XPath à considérer :
driver.findElement(By.xpath("//div[@class='value test']"));
Cette expression XPath garantit une correspondance exacte et ne fera que trouver des éléments avec les classes "value" et "test" dans l'ordre spécifié.
driver.findElement(By.xpath("//div[contains(@class, 'value test')]"));
Cette expression correspond aux éléments qui contiennent à la fois les classes "value" et "test", quel que soit leur ordre.
driver.findElement(By.xpath("//div[contains(@class, 'value') and contains(@class, 'test')]"));
Cette expression garantit que l'élément a à la fois le "value" et "test", mais il n'applique pas d'ordre spécifique.
Le sélecteur CSS comme alternative
En plus de XPath, les sélecteurs CSS peuvent également être utilisé pour localiser des éléments en fonction de plusieurs noms de classe. Considérez les expressions de sélecteur CSS suivantes :
driver.findElement(By.cssSelector("div[class='value test']"));
driver.findElement(By.cssSelector("div[class*='value test']"));
driver.findElement(By.cssSelector("div.value.test"));
Conclusion
Que vous utilisiez des sélecteurs XPath ou CSS, il est conseillé de considérer attentivement les critères de correspondance pour garantir une identification précise des éléments . Dans les cas où les éléments ont plusieurs classes, l'utilisation de l'une des techniques susmentionnées vous permettra de localiser efficacement l'élément Web souhaité.
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!