答案 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以获得更好的理解。