首页 > 解决方案 > Selenium - 如何找到链接对象

问题描述

我在使用 Java 在 IE11 中测试的页面上有以下 HTML。

<a href="BCreate.asp?Tab=Batches&amp;View=Batches"><span class="link_bar link_bar_link">Create New</span></a>

如果我尝试通过 linkText 查找,则会收到错误消息:

driver.findElement(By.linkText("Create New")).click();

使用 xpath 时出错(在 IE、Chrome 和 FireFox 中,xpath 可以很好地验证该链接):

driver.findElement(By.xpath("/html/body/div[5]/div/div[1]/table/tbody/tr/td/div/nobr/a[2]/span")).click();

我也尝试按班级查找,但没有运气:

WebElement parentElement = driver.findElement(By.className("link_bar link_bar_link"));
WebElement childElement = parentElement.findElement(By.linkText("Create New"));
childElement.click();

任何想法如何找到并单击此链接?

标签: javaseleniumselenium-webdriverxpathcss-selectors

解决方案


要查找文本为Create New的链接对象,您可以使用以下任一解决方案:

  • 选择器

    WebElement elem = driver.findElement(By.cssSelector("a[href*='View=Batches']>span.link_bar.link_bar_link"));
    
  • xpath

    WebElement elem = driver.findElement(By.xpath("//a[contains(@href,'View=Batches')]/span[@class='link_bar link_bar_link' and contains(.,'Create New')]"));
    

推荐阅读