硒-找到href链接-无法找到带有链接文本的元素

时间:2018-07-19 07:01:33

标签: selenium selenium-webdriver xpath css-selectors webdriverwait

enter image description here

我遇到错误-如果我使用linktext()查找规格链接

错误:

Unable to find element with link text == Specifications

2 个答案:

答案 0 :(得分:1)

根据您共享的 HTML ,如果linktext()显示错误为:

Error : Unable to find element with link text == Specifications

作为替代方案,您可能需要诱使 WebDriverWait 以便使所需的元素可点击,并且可以使用以下任一解决方案:

  • linkText

    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.linkText("Specifications"))).click();    
    
  • cssSelector

    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("td.subtabTxtNsel>a.subtabTxtNsel[tag='a']"))).click();
    
  • xpath

    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//td[@class='subtabTxtNsel']/a[@class='subtabTxtNsel' and contains(.,'Specifications')]"))).click();
    

答案 1 :(得分:0)

问题是您正在使用规范,但它是规范
仅使用大写字母 S ,它应该可以正常工作。

您可以使用显式等待,例如:

new WebDriverWait(driver,20).until(ExpectedConditions.elementToBeClickable(By.linkText("Specifications"))).click();  

或带有部分链接的文字

 new WebDriverWait(driver,20).until(ExpectedConditions.elementToBeClickable(By.partialLinkText("Specifications"))).click();  

如果两个工具仍然不起作用,则可以尝试使用xpath:

//td[@class='subtabTxtNsel']/a[text()='Specifications' and @tag='a']  

您的绑定语言未指定,我在 JAVA 中提供了答案。

更新:

显式等待是您定义的代码,用于在继续执行代码之前等待特定条件发生。最糟糕的情况是Thread.sleep(),它将条件设置为要等待的确切时间段。提供了一些方便的方法,可以帮助您编写仅等待所需时间的代码。 WebDriverWait与ExpectedCondition结合是可以实现此目标的一种方法

请参阅此link以获得更好的理解。