Поиск, существует ли элемент в другом элементе Selenium - PullRequest
0 голосов
/ 31 января 2020

enter image description here

Я пытаюсь найти, присутствует ли знак «+» после числа 65692.

Я пробовал:

driver.findElement(By.id(activeResource + "Current_Works_Order")).findElements(By.className("fa fa-plus multipleOpsIcon"));

Возвращает список, даже если «+» не существует.

Каков наилучший способ поиска этого элемента?

1 Ответ

0 голосов
/ 31 января 2020

Если вы не хотите получать список, а только элемент, вы должны использовать «findElement», а не «findElements».

То, как вы делаете, чтобы найти дочерний элемент, это допустимо, на мой взгляд.

То, что я использую, чтобы проверить, есть ли там элемент:

public static boolean checkElement(By by) {
  try {

    if (!isPresent(by)) {
      return false;
    }

    if (!isVisible(by)) {
      return false;
    }

    return true;

  } catch (StaleElementReferenceException e) {

    e.printStackTrace();
    return false;

  } catch (Exception e) {
    return false;
  }
}

public static boolean isPresent(By by) {
  try {

    getElement(by).getLocation();
    return true;

  } catch (StaleElementReferenceException e) {

    e.printStackTrace();
    return false;

  } catch (Exception e) {
    return false;
  }
}

public static boolean isVisible(By by) {
  try {

    return getElement(by).isDisplayed();

  } catch (StaleElementReferenceException e) {

    e.printStackTrace();
    return false;

  } catch (Exception e) {
    return false;
  }
}

public static WebElement getElement(By by) {
  try {

    return driver.findElement(by);

  } catch (StaleElementReferenceException e) {

    e.printStackTrace();
    return null;

  } catch (Exception e) {
    return null;
  }
}

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...