Почему Selenium ExpectedConditions.elementToBeClickable(By.xpath(XPath))) возвращает строку?

#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.