Перейти к содержимому

Фотография

Описание элементов страницы с помощью IWebElement


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 3

#1 enotik

enotik

    Новый участник

  • Members
  • Pip
  • 2 сообщений
  • ФИО:Никитин Лиза

Отправлено 14 ноября 2019 - 19:19

Здравствуйте, только недавно начала обучение с Selenium и сейчас столкнулась с такою задачей: 

нужно описать все елементы страницы с помощью IWebElement. На данной странице есть кнопка "Добавить блок", при нажатие на какую появляется блок, что похож на выпадающий список, но это не select. В этом блоке тоже есть кнопки, что напоминают select (то есть, когда на них нажимаешь, то появляются елементы button, что уже выполняют определенные действия). (Для наглядности смотрите прикрепленные файлы)

Так вот подскажите пожалуйста как бы это корректно написать? Преподаватель казал через Dictionary<IWebElement, List<IWebElement>> делать, но я не пойму как именно:(

 

Пока только для текстового поля написала:

IWebDriver driver = new ChromeDriver();
IWebElement textBoxSearchBlock = driver.FindElement(By.Id("block-editor-inserter__search-6"));

Пишу в C#.
Буду благодарна за помощь)))

    От фрагмент html-кода 

<div class="editor-inserter__result block-editor-inserter__results" aria-label="Доступные типы блоков">
  <!-- данный блок кода выполняется, когда кнопка "Часто используемые" была нажата -->
  <div class ="components-panel__body is-opened" "> 
     <h2 class="components-panel__body-title">
       <button type="button" aria-expanded="true" class="components-button components-panel__body-toggle">
            "Часто используемые"
       </button>
     </h2>
    <ul role="list" class="editor-block-types-list block-editor-block-types-list">
      <li class = "..."> ...</li>
      <li class = "..."> ...</li>
      ...........................
      <li class = "..."> ...</li>   
    </ul>
  </div>

  <!-- данный код блока выполняется, когда кнопка "Основнные блоки" не была нажата -->
  <div class="components-panel__body">
   <h2 class = "components-panel__body-title">
     <button type="button" aria-expanded="false" class="components-button components-panel__body-toggle">
      "Основные блоки"
     </button>
   </h2>
  </div> 

  <!-- и т.д. (и по аналогии ещё таких же 4 подблоков) -->
  ............................................................
</div>

 
 

Прикрепленные файлы

  • Прикрепленный файл  picture1.png   22,78К   1 Количество загрузок:
  • Прикрепленный файл  picture2.png   18,02К   0 Количество загрузок:

  • 0

#2 sergueik

sergueik

    Постоянный участник

  • Members
  • PipPipPip
  • 166 сообщений
  • ФИО:кузьмин сергей

Отправлено 15 ноября 2019 - 01:32

.net возврашает
 

ReadonlyCollection<IWebElement> elements = driver.FindElements(By.Id("x"));

  • 0

#3 enotik

enotik

    Новый участник

  • Members
  • Pip
  • 2 сообщений
  • ФИО:Никитин Лиза

Отправлено 15 ноября 2019 - 15:34

Ок, ёще такой вопрос, как правильно описывать элементы, если например есть много вложенных тегов, вот например

<div>
<ul>
  <li>
    <button>
        <span> 
            <svg> 
             <path> </path>
            </svg>
        </span>
        <span> ... </span>
    </button>
  </li>
  <li>
    <button>
        <span>
          <svg>
            <path> </path>
          </svg>
        </span>
        <span> ... </span>
    </button>
  </li> 
<ul>
</div>

Мне для каждого нужно создавать новый IWebElement? Или можно некоторые опускать?


  • 0

#4 sergueik

sergueik

    Постоянный участник

  • Members
  • PipPipPip
  • 166 сообщений
  • ФИО:кузьмин сергей

Отправлено 15 ноября 2019 - 19:02

используйте css selector / xpath  чтоб получеть  те элементы что нужно и не возиться с промежуточными 

https://automated-te...izucheniyu/3782


  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных