我得到以下错误 - 如果我linktext()
用来定位规格链接
错误 :
Unable to find element with link text == Specifications
根据您共享的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();
问题是您使用的是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 结合是可以实现的一种方法
请参考此链接以获得更好的理解。