Я получаю следующую ошибку: если я использую linktext()
, чтобы найти ссылку спецификации
Ошибка :
Unable to find element with link text == Specifications
Я получаю следующую ошибку: если я использую linktext()
, чтобы найти ссылку спецификации
Ошибка :
Unable to find element with link text == Specifications
В соответствии с 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();
webdriverwait()
.
- person DebanjanB; 19.07.2018
Проблема в том, что вы используете спецификации, но это спецификации.
Просто с большой буквы 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 — один из способов достижения этого.
Перейдите по этой ссылке для лучшего понимания.