Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Проблема обработки list<IWebElement> цикле foreach

selenium
webdriver
Теги: #<Tag:0x00007f7b64c623e8> #<Tag:0x00007f7b64c62280>

(Вова Черепок) #1

Код берет список разделов “sectionElements” сайта с сайта, пробегает по ним и собирает ссылки из каждого. После этого foreach пробегает по всем ссылкам и выполняет метод ScrapeAllGamesData. Все данные собираются хорошо по всем страницам, но после того как все собрано, после последней итерации нас возвращает в foreach чтобы убедиться что нету еще одного элемента в списке. Но изза того что мы бегали по ссылкам, список sectionElements рушится и не содержит ничего. Помогите может кто сталкивался?

var sectionElements = driver.FindElements(By.XPath(".//div[@class='game-category-wrapper']//h2[@class='headline']"));
                        foreach (var sectionElement in sectionElements)
                        {
                            ...
                            foreach (var seeAllUrl in seeAllUrls)
                            {
                                driver.Navigate().GoToUrl(seeAllUrl);
                                result.AddRange(ScrapeAllGamesData(driver, currentSection, site.SiteID, siteUrl));
                            }
                        //Back to all-games page
                        driver.Navigate().Back();
                        //Обновляем элемент sectionElements
                        sectionElements = driver.FindElements(By.XPath(".//div[@class='game-category-wrapper']//h2[@class='headline']"));
                    }

(Sxema Luna) #2

А почему у Вас driver.Navigate().Back(); вне foreach -а в котором вы переходите по ссылкам?