2013-10-25 57 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)”)

相关问题