2013-10-25 60 views
1

我是新來的硒。 我想根據「href」屬性選擇一個鏈接。我不能在這裏使用xpath,因爲每次頁面加載時,鏈接都會在頁面上移動。請幫幫我。 謝謝。如何使用硒在基於href屬性的頁面中選擇鏈接?

+0

如果您正在使用的webdriver可以使用'By.linkText()',並指定在'anchor'標籤的文本。 –

+0

我不能使用,在錨標記文本是同爲這裏的所有鏈接。:( – Jaydev

+0

Jaydev,能否請您解釋給一個例子。 – saikosen

回答

1

使用xpath // a [contains(@ href,'yourhref')]和by.xpath或類似的css。當你使用//它意味着一個相對xpath,所以不管層次結構如何,如果你的href是唯一的,這將爲你做這項工作。

+0

這對我有效,謝謝 – Jaydev

0

您可以使用By.linkTextBy.partialLinkText

<a href="http://www.google.com/search?q=cheese">search for cheese</a>>

WebElement cheese = driver.findElement(By.partialLinkText("cheese"));

此示例已從here

+0

我不能使用它。在我這裏,錨標記中的文本對於所有鏈接都是相同的,只有唯一屬性是每個鏈接都不同的href。 – Jaydev

0

提取既可以使用this的xpath施工方法或以下方法。

public void clickLink(WebDriver driver) { 

    List<WebElement> aList = driver.findElements(By.tagName("a")); 

    for (WebElement el : aList) { 

     // if (el.getAttribute("href").contains("your href partial value") 

     if (el.getAttribute("href") 
       .equalsIgnoreCase("your full hreff text")) { 
      el.click(); 
      break; 
     } 
    } 
} 

根據您的要求使用if條件。部分或全部比較。

0

使用CSS選擇器,示例 - driver.findElement(By.cssSelector( 「一[HREF =(您的href)」)

相關問題