54

以下は一連のリンクです。そのうちの<a elements. 1 つだけが、属性 href の値として部分文字列「long」を持っています。

<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部分文字列「long」を含むリンクをクリックする必要があります。これどうやってするの?

PS: driver.findElement(By.partialLinkText("long")).click();// b/c 名前で選ぶ

4

4 に答える 4

106

href に部分文字列「long」が含まれているリンクをクリックする必要があります。これどうやってするの?

CSS セレクターの美しさとともに。

あなたの声明は...

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

これは、英語で、

属性を持つ「a」要素hrefとその属性contains「long」を見つけてください

自動化のために独自のセレクターを効果的に作成する方法に関する便利な記事や、他のすべての等値演算子のリストを見つけることができます。containsstarts withなど... http://ddavidon.io/css/2014/02/18/effective-css-selectors.htmlで見つけることができます

于 2013-09-27T20:04:17.657 に答える
6

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

于 2013-09-27T16:09:24.277 に答える
4

あなたはこれを行うことができます:

//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;
    }
}

この中で私たちがやっていることは、最初にすべての<a>タグを見つけlist.Afterて、リストを 1 つずつ繰り返して<a>、href 属性に長い文字列が含まれるタグを見つけることです。そして、その特定のタグをクリックして<a>、ループから抜け出します。

于 2014-06-18T12:38:10.590 に答える