Длительное ожидание элемента с нужным значением - C#
Формулировка задачи:
Привет, мужики.
Пишу программу на Visual Studio С# + selenium (отличное сочетание).
Знания С# и selenium низкие. Поэтому появились затруднения и прошу помощи.
Изначально такой текст html:
Через 5 минут, а может и через 5 часов, становится таким:
Мне нужно чтобы программа сидела на сайте 5 минут или 5 часов и ждала когда появится: div.c-events__score именно с тайтлом "2 element". И когда элемент появится, то должна вернуться ссылка только появившегося элемента.
Как это реализовать? Бесконечный цикл и каждый раз дергать код сайта - глупая идея. Есть же варианты разумнее.
Заранее спасибо!
<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>
<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>
Решение задачи: «Длительное ожидание элемента с нужным значением»
textual
Листинг программы
public bool isElementPresent(By by) { try { Browser.FindElement(by); return true; } catch (NoSuchElementException e) { return false; } } bool stopserach = false; List<IWebElement> AllGLi; List<IWebElement> AllGSc; do { if (isElementPresent(By.CssSelector("a.c-events__name")) == true && isElementPresent(By.CssSelector(".c-events__score")) == true) { AllGLi = Browser.FindElements(By.CssSelector("a.c-events__name")).ToList(); AllGSc = Browser.FindElements(By.CssSelector(".c-events__score")).ToList(); for (int i = 0; i < AllGLi.Count; i++) { String securegame = AllGSc[i].GetAttribute("title"); if (securegame.ToString() == "Текст который должен появиться на странице") { listboxlog.Items.Add( AllGLi[i].GetAttribute("href") + ' ' + AllGSc[i].GetAttribute("title")); stopserach = true; } } } } while (stopserach != true);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д