#java #selenium #xpath #nosuchelementexception
#java #селен #xpath #исключение nosuchelementexception
Вопрос:
Упрощенную версию моего кода.
do {
try {
wait.until(ExpectedConditions.elementToBeClickable(By.xpath(xpLucka)));
driver.findElement(By.xpath(xpLucka)).click();
System.out.println("Clickable = " ExpectedConditions.elementToBeClickable(By.xpath(xpSvar)));
} catch (Exception e1) {
e1.printStackTrace();
}
} while (ExpectedConditions.visibilityOfElementLocated(By.xpath(xpSvar)) == null);
У меня возникли некоторые проблемы с нажатием xpLucka
, требуется несколько попыток, прежде чем он завершится успешно, отсюда и это уродливое временное решение — но оно все равно терпит неудачу. В Javadoc для обоих elementToBeClickable
и visibilityOfElementLocated
(я экспериментировал с обоими и несколькими другими методами в том же семействе) в разделе returns
указано WebElement, когда он находится и доступен для просмотра (виден и включен), но когда я печатаю значение, он печатает XPath, который я использую в качестве locator ( xpSvar
) .
Чего мне здесь не хватает?Потому что на следующем шаге, когда я пытаюсь щелкнуть xpSvar
, я получаю NoSuchElementException
— потому что я все еще нахожусь в представлении, где я должен щелкнуть xpLucka
. Явно xpLucka
не был нажат и xpSvar
не доступен для просмотра или просмотра.
Редактировать: почему Xpath имеет значение?
В любом случае, вот это xpLucka //div[@class='calendar-scratcher__container ng-scope']//div[@class='calendar-scratcher-field ng-scope ng-isolate-scope calendar-scratcher-field--interact-click']
и xpSvar //ul[@class='question__answers ng-scope question__answers--text question__answers--has-active-state question__answers--align-center']/li[@class='question__answer-item question__answer-item--h6'][x]
Комментарии:
1. Можете ли вы опубликовать сайт, xpath или html-код для нужного вам элемента.
2. @ArundeepChohan добавил Xpaths.