0

在此处输入图像描述

我得到以下错误 - 如果我linktext()用来定位规格链接

错误 :

Unable to find element with link text == Specifications
4

2 回答 2

1

根据您共享的HTMLlinktext() ,以防显示错误:

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();
    
于 2018-07-19T07:15:24.190 回答
0

问题是您使用的是Specifications , 但它是Specifications
只需大写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 结合是可以实现的一种方法

请参考此链接以获得更好的理解。

于 2018-07-19T07:11:34.347 回答