Selenium FindElement Loop Каждые x секунд - PullRequest
0 голосов
/ 18 октября 2019

Сообщество переполнения Greetings Stack,

У меня есть скрипт, который очищает веб-страницу для получения информации, которая после полной загрузки веб-страницы сохраняет информацию в теге H3. Мой сценарий работает, но вместо мигающего курсора я пытаюсь выводить точку каждые две секунды во время загрузки веб-страницы, чтобы получить представление о промежутке времени.

Я также пытался настроить некоторое время (верно), цикл do while с (true), но либо сценарий не выйдет из цикла, либо не выведет на консоль несколько периодов.

Вот цикл while, который выведет одинperiod, но прервется, когда совпадение с регулярным выражением будет найдено.

int Counter = 0;

while (true)

{

      var H3Scraping = driver.FindElement(By.XPath("//*[@id='msg']/h3")).Text;

            Console.Write(".");
            Thread.Sleep(2000);

            Counter++;

               if (Regex.IsMatch(H3Scraping, @"[Needed Text]"))
               break;
}

Или этот код будет отображать один период на консоли, но затем он не будет отображаться через два секунды. Сценарий успешно завершает цикл и продолжает работу, когда переменная counter достигает 15, но не прерывается в операторе regex.IsMatch.

var H3Scraping = "";

    for (int Counter = 0; Counter < 15; Counter++)
    {

      H3Scraping = driver.FindElement(By.XPath("//*[@id='msg']/h3")).Text;

      Thread.Sleep(2000);
      Console.Write(".");

         if (Regex.IsMatch(H3Scraping, @"[Needed Text]"))    
         break;
    }

Любая помощь будет принята с благодарностью.

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...