Element is not attached to the page document

166
14 сентября 2019, 04:00

Помогите, пожалуйста, с решением проблемы element is not attached to the page document. Решил сделать програму по продаже карточек в Steam. После продажи карточка пропадает, а на странице вмещается 25 карточек. Продал я первую карточку и все, на следующей карточке программа обрывается. Так как первая карточка пропала из странички. Вот код:

        IWebElement SteamCounteiner = browser.FindElement(By.Id("inventory"));
        int Cardprocessed = 0;
        bool Firstsell = true;
        List<IWebElement> Items = SteamCounteiner.FindElements(By.ClassName("itemHolder")).ToList();
        for (int i = 0; i < Items.Count; i++)
        {
            if (backgroundWorker1.CancellationPending)
                return;
            if (Items[i].GetAttribute("style") == "")
            {
                System.Threading.Thread.Sleep(2000);
                Items[i].Click();
                String divtext = "";
                IWebElement Sellbtn = null;
                System.Threading.Thread.Sleep(2000);
                List<IWebElement> SellDivs = browser.FindElements(By.ClassName("item_market_actions")).ToList();
                for(int j = 0; j < SellDivs.Count; j++)
                {
                    if (SellDivs[j].Displayed)
                    {
                        divtext = SellDivs[j].Text;
                        Sellbtn = SellDivs[j].FindElement(By.ClassName("item_market_action_button_contents"));
                    }
                }
                String priceStr = System.Text.RegularExpressions.Regex.Match(divtext, @"[0-9]+\,?[0-9]*").Value;
                float Price = Single.Parse(priceStr) + (float)numericUpDown1.Value;
                Actions SellClick = new Actions(browser);
                SellClick.MoveToElement(Sellbtn).Click().Perform();
                System.Threading.Thread.Sleep(2000);
                if (Firstsell)
                {
                    browser.FindElement(By.Id("market_sell_dialog_accept_ssa")).Click();
                    Firstsell = false;
                }
                browser.FindElement(By.Id("market_sell_buyercurrency_input")).SendKeys(Price.ToString());
                System.Threading.Thread.Sleep(1000);
                browser.FindElement(By.Id("market_sell_dialog_accept")).Click();
                System.Threading.Thread.Sleep(1000);
                browser.FindElement(By.Id("market_sell_dialog_ok")).Click();
                System.Threading.Thread.Sleep(3000);
                sellsProcessed++;
                Cardprocessed++;
                if(Cardprocessed == 25)
                {
                    Cardprocessed = 0;
                    browser.FindElement(By.Id("pagebtn_next")).Click();
                    System.Threading.Thread.Sleep(2000);
                }
            }
        }

Обрывается она во втором условии if. Пишет element is not attached to the page document.

READ ALSO
Массив или база данных

Массив или база данных

Возможно ли организовать такой массив ? bitmap | string | int | int

118
Как изменить кодировку в одной из страниц в asp core?

Как изменить кодировку в одной из страниц в asp core?

Когда делаю показ страницы, у меня только в одном файле место русских букв вопросительные символыШрифты использованные такие же как и в других...

141
Как извлечь объект из массива данных в Laravel?

Как извлечь объект из массива данных в Laravel?

При использовании Laravel столкнулся со следующей проблемой при использовании коллекции:

146