C# Selenium. Как написать цикл?

Хочу написать цикл на c#. Сделать так, чтобы после неправильного ввода капчи, просил еще раз вводить, а не прекращал работу. На следующей странице есть элемент, пытался через него сделать так, чтобы пока не увидит элемент на след.странице - не прекращал работу. Но не получается. Надо, чтобы вот этот код:

ww.Until(driver =>
            {
                var size =
                  driver.FindElement(By.XPath("//input[@name='Captcha']")).GetAttribute("value").Length;
                if (size >= 6)
                {
                    driver.FindElement(By.XPath("//*[contains(text(), 'Tuti')]")).Click();
                    return true;
                }
                else
                {
                    return false;
                }
            });

Повторялся, пока не будет найден элемент: By.XPath("//*[contains(text(),'skachat')]


Ответы (1 шт):

Автор решения: Lorn Lifofsky

Не особо разбираюсь в Selenium, но можно попробовать так

ww.Until(driver =>
{
    try
    {
        driver.FindElement(By.XPath("//*[contains(text(),'skachat')]"));
        //Stop
    }
    catch (NoSuchElementException)
    {
        var size = driver.FindElement(By.XPath("//input[@name='Captcha']")).GetAttribute("value").Length;
        if (size >= 6)
        {
            driver.FindElement(By.XPath("//*[contains(text(), 'Tuti')]")).Click();
            return true;
        }
        else
        {
            return false;
        }
    }
});
→ Ссылка