Длительное ожидание элемента с нужным значением - 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);