Нужна помощь по Selenium на C#

Имеется следующая задача по написанию автотеста на C#: необходимо перейти по ссылке, в открывшейся странице сгенерировать 5 раз персональный идентификационный номер. В каждом сгенерированном номере необходимо проверить на чётность/нечётность последнюю цифру, и соответственно вывести на консоль результат - чётный или нет. Реализовал я это следующим образом:

private static void Main()
        {
            IWebDriver driver = new ChromeDriver();

            driver.Navigate().GoToUrl("http://generatory.it/");

            driver.Manage().Window.Maximize();

            
            int count = 0;
            do
            {
                IWebElement generateNewPesel = driver.FindElement(By.XPath("//*[@onclick = 'setGeneratedPesel()']"));
                generateNewPesel.Click();

                string Pesel = driver.FindElement(By.XPath("//*[@id = 'peselBox']")).Text;

                char[] peselArray = Pesel.ToCharArray();

                if (peselArray[10] % 2 == 0)
                {
                    Console.WriteLine("The element is even");
                    count++;
                }
                else
                {
                    Console.WriteLine("The element is odd");
                    count++;
                }                
            } while (count <= 4);

В дополнение к вышеописанному заданию необходимо добавить в код сравнение - отличается ли каждый новый сгенерированный номер от предыдущего. И вот с этим сранением у меня тупик. Теоретически я мог бы каждый сгенерированный номер записывать в отдельную переменную и затем просто сранивать, например при помощи метода string.Compare, но как по мне это получится слишком много строчек кода и будет это всё выглядеть нелаконично.

Знающие, подскажите пожалуйста, возможно ли к уже написанному мной коду прилепить сравнение в каждой итерации? Ну или как-то по другому. Заранее благодарен всем откликнувшимся.


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

Автор решения: aepot

Можно просто получить числа в массив

IWebElement generateNewPesel = driver.FindElement(By.XPath("//*[@onclick = 'setGeneratedPesel()']"));
IWebElement peselElement = driver.FindElement(By.Id("peselBox"));
int[] numbers = new int[4];
for (int i = 0; i < numbers.Length; i++)
{
    generateNewPesel.Click();
    numbers[i] = peselElement.Text[^1] - '0'; // получение числа из цифры символа
}
Console.WriteLine(string.Join(" ", numbers));

А теперь сравнивайте, проверяйте на четность, что угодно с ними делайте.

Хотя-бы вот четность:

for (int i = 0; i < numbers.Length; i++)
{
    Console.WriteLine(numbers[i] % 2 == 0 ? "чётный" : "нечётный");
}

отличается ли каждый новый сгенерированный номер от предыдущего

for (int i = 1; i < numbers.Length; i++)
{
    Console.WriteLine(numbers[i] != numbers[i - 1] ? "отличается" : "не отличается");
}
→ Ссылка