Как выбрать элементы для реакции на модал для селена - PullRequest
0 голосов
/ 24 мая 2018

Вот что я пытаюсь сделать: проект построен с использованием ReactJS, я использую Selenium WebDriver с Java.

  1. Нажмите кнопку (я могу это сделать)
  2. Откроется модальное окно с компонентом реагировать на выбор.

Я хочу выбрать элемент в этом выборе.

HTML-код:

  <div class="row">
    <div class="col-xs-7">
      <div class="Select kpi-select is-searchable Select--single">
        <div class="Select-control">
          <span class="Select-multi-value-wrapper" id="react-select-19--value">
            <div class="Select-placeholder">Select KPI</div>
            <div class="Select-input" style="display: inline-block;">
              <input id="add-kpi-kpi-select" aria-activedescendant="react-select-19--value" aria-expanded="false" aria-haspopup="false" aria-owns="" role="combobox" value="" style="box-sizing: content-box; width: 5px;">
              <div style="position: absolute; top: 0px; left: 0px; visibility: hidden; height: 0px; overflow: scroll; white-space: pre; font-size: 14px; font-family: Roboto, Helvetica, Arial, sans-serif; font-weight: 300; font-style: normal; letter-spacing: normal; text-transform: none;"></div>
            </div>
          </span>
          <span class="Select-arrow-zone"><span class="Select-arrow"></span></span>
        </div>
      </div>
    </div>
    <div class="col-xs-5">
      <div class="Select kpi-select is-searchable Select--single">
        <div class="Select-control">
          <span class="Select-multi-value-wrapper" id="react-select-20--value">
            <div class="Select-placeholder">Select Time Period</div>
            <div class="Select-input" style="display: inline-block;">
              <input id="add-kpi-timeperiod-select" aria-activedescendant="react-select-20--value" aria-expanded="false" aria-haspopup="false" aria-owns="" role="combobox" value="" style="box-sizing: content-box; width: 5px;">
              <div style="position: absolute; top: 0px; left: 0px; visibility: hidden; height: 0px; overflow: scroll; white-space: pre; font-size: 14px; font-family: Roboto, Helvetica, Arial, sans-serif; font-weight: 300; font-style: normal; letter-spacing: normal; text-transform: none;">
              </div>
            </div>
          </span>
          <span class="Select-arrow-zone"><span class="Select-arrow"></span></span>
        </div>
      </div>
    </div>
  </div>

Снимок экрана:

enter image description here

1 Ответ

0 голосов
/ 24 мая 2018

Java-код для выбора KPI

String wantedOption = "wanted KPI";

// click the down arrow to expand options
driver.findElement(By.cssSelecor("div.Select.kpi-select span.Select-arrow")).click();


// select wanted KPT
driver.findElement(By.cssSelector("div.Select.kpi-select div.Select-menu"))
    .findElement(By.xpath(String.format(".//div[text()='%s']", wantedOption)))
    .click();

Руководство по расширению параметров с помощью добавления точки останова при событии щелчка:

  1. Открыть Chrome DevTool
  2. Переключательна Sources Вкладка
  3. Выполните шаги, как показано ниже enter image description here

  4. Нажмите на Select KPI на странице

  5. Вы увидите новый узел DOM <div class="Select-menu-outer">, который содержит все опции в Element Tab

enter image description here

...