如何点击一个链接的HREF在Selenium中有一个特定的子string?

以下是一堆链接<a elements. 只有其中一个有一个子string“long”作为属性href的值

 <a class="c1" href= "very_lpng string" > name1 </a> <a class="g2" href= "verylong string" > name2 </a> // The one that I need <a class="g4" href= "very ling string" > name3 </a> <a class="g5g" href= "very ng string" > name4 </a> ................... 

我需要点击链接的href有子string“长”在其中。 我怎样才能做到这一点?

PS: driver.findElement(By.partialLinkText("long")).click(); // b / c按名称select

我需要点击href有子string“long”的链接。 我怎样才能做到这一点?

随着CSSselect器的美丽。

你的陈述将是…

 driver.findElement(By.cssSelector("a[href*='long']")).click(); 

这意味着,在英语中,

find我的任何“a”元素,它具有href属性,并且该属性contains “long”

你可以find一个有用的文章,为自己有效地制定自己的select器,以及所有其他的相等运算符的列表。 containsstarts with ,等等…你可以find: http : //ddavison.io/css/2014/02/18/effective-css-selectors.html

使用driver.findElement(By.partialLinkText("long")).click();

你可以这样做:

 //first get all the <a> elements List<WebElement> linkList=driver.findElements(By.tagName("a")); //now traverse over the list and check for(int i=0 ; i<linkList.size() ; i++) { if(linkList.get(i).getAttribute("href").contains("long")) { linkList.get(i).click(); break; } } 

在这里我们要做的是首先我们find所有的<a>标签,并将它们存储在一个list.After ,我们list.After迭代列表以find<a>标签,其href属性包含长string。 然后我们点击那个特定的<a>标签并从循环中出来。