如何点击一个链接的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器,以及所有其他的相等运算符的列表。 contains
, starts 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>
标签并从循环中出来。