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

Фотография

Длительное ожидание элемента с нужным значением

webdriver selenium c#

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

#1 Sankaboy

Sankaboy

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

  • Members
  • Pip
  • 2 сообщений

Отправлено 15 апреля 2017 - 18:44

Привет, мужики.

Пишу программу на Visual Studio С# + selenium (отличное сочетание).

Знания С# и selenium низкие. Поэтому появились затруднения и прошу помощи.

 

Изначально такой текст html:

<li class="c-events__item c-events__item_col">
<a href="https://.....com" class="c-events__name"></a>
<div class="c-events__dop">
<div title="1 element" class="c-events__score">
<span class="c-events__fullScore">1 element</span> 
</div>
</li>

Через 5 минут, а может и через 5 часов, становится таким:

<li class="c-events__item c-events__item_col">
<a href="https://.....com" class="c-events__name">1 element</a>
<div class="c-events__dop">
<div title="1 element" class="c-events__score">
<span class="c-events__fullScore">1 element</span> 
</div>
</li>
<li class="c-events__item c-events__item_col">
<a href="https://.....com" class="c-events__name">2 element</a>
<div class="c-events__dop">
<div title="2 element" class="c-events__score">
<span class="c-events__fullScore">2 element</span> 
</div>
</li>

Мне нужно чтобы программа сидела на сайте 5 минут или 5 часов и ждала когда появится: div.c-events__score именно с тайтлом "2 element". И когда элемент появится, то должна вернуться ссылка только появившегося элемента.

 

Как это реализовать? Бесконечный цикл и каждый раз дергать код сайта - глупая идея. Есть же варианты разумнее.

Заранее спасибо!


  • 0

#2 Sankaboy

Sankaboy

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

  • Members
  • Pip
  • 2 сообщений

Отправлено 16 апреля 2017 - 14:58

Всем спасибо за помощь  :rofl:

Вопросы решились. Запускаем текст в другой поток(Thread,Task) или backgroundworker, в потоке делаем цикл, а в цикле вытягивает с сайта нужные элементы. Thread - типа устаревший метод, но есть ф-ции которых нет в других потах. Task - типа новый, но обладает большим минусом - нельзя перезапускать потоки. backgroundworker - наверное лучше всего, перезапустить даже можно.


  • 0



Темы с аналогичным тегами webdriver, selenium, c#

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

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