Problema para incrementar um FOR em outro método

Olá pessoal, estou com uma pequena dificuldade ao incrementar um FOR quando ele for executado. Segue o código:

public class SolicitaReservaVooSite
    {
        public IWebDriver driver;
        public String baseURL;
        public int IncrementMonth = 3;

        [TestFixtureSetUp]
        public void Setup()
        {
            baseURL = "http://teste.com.br/";
            driver = new ChromeDriver(@"D:\automatedtests\tools\drivers");
            driver.Manage().Window.Maximize();
        }

        [Test]
        public void a_AcessarSistema()
        {
            driver.Navigate().GoToUrl(baseURL);
        }

        [Test]
        public void b_EfetuarPesquisa()
        {
            driver.FindElement(By.Id("rbtOnlyWay")).Click();

            driver.FindElement(By.Id("p_lt_ctl03_pageplaceholder_p_lt_ctl01_Buscador_txtDeparture_txtDescription")).SendKeys("bage");

            WebDriverWait esperaAutoPreenchimentoOrigem = new WebDriverWait(driver, TimeSpan.FromSeconds(3));
            esperaAutoPreenchimentoOrigem.Until(ExpectedConditions.ElementIsVisible(By.ClassName("ac_results")));

            driver.FindElement(By.ClassName("ac_even")).Click();

            driver.FindElement(By.Id("p_lt_ctl03_pageplaceholder_p_lt_ctl01_FSXBuscador_txtArrival_txtDescription")).SendKeys("miami");

            WebDriverWait esperaAutoPreenchimentoDestino = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
            esperaAutoPreenchimentoDestino.Until(ExpectedConditions.ElementIsVisible(By.XPath("//*[@class='ac_even ac_over']")));

            driver.FindElement(By.XPath("//*[@class='ac_even ac_over']")).Click();

            driver.FindElement(By.Id("p_lt_ctl03_pageplaceholder_p_lt_ctl01_FSXBuscador_txtDepartureDateAero")).Click();

            for (int i = 0; i < IncrementMonth; i++)
            {
                driver.FindElement(By.CssSelector("span.ui-icon.ui-icon-circle-triangle-e")).Click();
            }

            driver.FindElement(By.XPath("//td[1]/a")).Click();
            System.Threading.Thread.Sleep(1000);
            driver.FindElement(By.Id("btnSearchFSX")).Click();
        }

        [Test]
        public void d_RetornaResultados()
        {
            System.Threading.Thread.Sleep(10000);

            try
            {
                driver.FindElement(By.ClassName("resultado-voos-item-reservar")).Click();
            }
            catch (NoSuchElementException)
            {
                driver.Navigate().GoToUrl(baseURL);
                driver.FindElement(By.Id("p_lt_ctl03_pageplaceholder_p_lt_ctl01_FSXBuscador_txtDeparture_txtDescription")).Clear();
                driver.FindElement(By.Id("p_lt_ctl03_pageplaceholder_p_lt_ctl01_FSXBuscador_txtArrival_txtDescription")).Clear();
                b_EfetuarPesquisa();
                IncrementMonth++;
            }
        }

Bom, na primeira vez que executa o FOR, é incrementado com sucesso, porém quando executa o

catch (NoSuchElementException)

eu preciso que incremente mais uma vez a cada vez que entrar neste catch, mas o

IncrementMonth++;

não está funcionando. Isto é C# mas a lógica tenho certeza que é parecida com a de java[color=red] [/color]

Alguma luz?

Obrigado.

Bom, acho que está no fórum errado. Se algum moderador puder movê-lo para a categoria correta, seria uma boa. Outra coisa, para dúvidas de C#, o novo fórum é uma boa pedida.

Quanto ao seu problema, realmente é incrível como o C# é parecido com Java mesmo. Eu jurava que era um programa Java com código despadronizado.

Eu penso que quando entra na Exception, ele executará tudo o que tiver pra executar somente aquela vez. Se o que você quer é que, ao entrar no bloco da Exception, o Incrementmonth vá pra 4 ao invés de se manter em 3, não seria o caso de mover a linha que incrementa ele pra cima da chamada do método de pesquisa?

Tipo:

catch (NoSuchElementException) { driver.Navigate().GoToUrl(baseURL); driver.FindElement(By.Id("p_lt_ctl03_pageplaceholder_p_lt_ctl01_FSXBuscador_txtDeparture_txtDescription")).Clear(); driver.FindElement(By.Id("p_lt_ctl03_pageplaceholder_p_lt_ctl01_FSXBuscador_txtArrival_txtDescription")).Clear(); IncrementMonth++; // Esse aqui veio pra cima b_EfetuarPesquisa(); }

Olá meu caro. Resolveu meu problema.

Você sabe me dizer como eu posso parar este loop após tentar 4 vezes, por exemplo?

[quote=rafael.cs]Você sabe me dizer como eu posso parar este loop após tentar 4 vezes, por exemplo?
[/quote]
Creio que o próprio loop funcionará assim, tendo em vista que quando i for = 4 ele não entra mais no escopo do for. Todavia se você aumentar a quantidade de loops e quiser forçar a saída de acordo com uma condição, pode fazer assim (exemplo em Java)

for (int i = 0; i &lt; algo; i++) {
    if (i == 4) {
        break;
    }
    // Executa o escopo do método.
}

Abs []

Logo depois que eu mandei a dúvida eu pesquisei e encontrei o problema, basta adicionar um IF mesmo.

Muitíssimo obrigado pela atenção e ajuda.