Ce qui suit est un tas de liens <a elements.
SEULEMENT l’un d’eux a une sous-chaîne “long” comme valeur pour l’atsortingbut href
name1 name2 // The one that I need name3 name4 ...................
Je dois cliquer sur le lien dont href
a la sous-chaîne “long”. Comment puis-je faire ceci?
PS: driver.findElement(By.partialLinkText("long")).click();
// b / c choisit par le nom
Je dois cliquer sur le lien qui a href a sous-chaîne “long” dedans. Comment puis-je faire ceci?
Avec la beauté des sélecteurs CSS.
votre déclaration serait …
driver.findElement(By.cssSelector("a[href*='long']")).click();
Cela signifie, en anglais,
Trouvez-moi des éléments ‘a’, qui ont l’atsortingbut
href
, et cet atsortingbutcontains
‘long’
Vous pouvez trouver un article utile sur la formulation efficace de vos propres sélecteurs d’automatisation, ainsi qu’une liste de tous les autres opérateurs d’égalité. contains
, starts with
, etc … Vous pouvez le trouver sur: http://ddavison.io/css/2014/02/18/effective-css-selectors.html
utilisez driver.findElement(By.partialLinkText("long")).click();
Tu peux le faire:
//first get all the elements List linkList=driver.findElements(By.tagName("a")); //now traverse over the list and check for(int i=0 ; i
En premier lieu, nous trouvons toutes les balises et les
list.After
dans une liste. list.After
cela, nous list.After
la liste une par une pour trouver la balise dont l'atsortingbut href contient une longue chaîne. Et puis nous cliquons sur cette balise
particulière et sort de la boucle.
Avec l’aide de xpath locator également, vous pouvez obtenir la même chose.
Votre déclaration serait:
driver.findElement(By.xpath(".//a[contains(@href,'long')]")).click();
Et pour cliquer sur tous les liens contient longtemps dans l’URL, vous pouvez utiliser: –
List linksList = driver.findElements(By.xpath(".//a[contains(@href,'long')]")); for (WebElement webElement : linksList){ webElement.click(); }