コード例 #1
0
ファイル: Task.cs プロジェクト: sobczi/Selenium-Gladiatus
 public static void Take_Gold()
 {
     Navigation.Packages();
     Navigation.Filter_packages("Złoto", "");
     Basic.Click_if("//a[@class='paging_button paging_right_full']");
     while (Get.Gold() < RegistryValues.Read_i("gold_take") && Basic.Search_element("//div[@id='packages']//div[contains(@class,'draggable')]"))
     {
         IReadOnlyCollection <IWebElement> elements = Bot.driver.FindElementsByXPath("//div[@id='packages']//div[contains(@class,'draggable')]");
         foreach (IWebElement element in elements)
         {
             Basic.Double_click(element);
             if (Get.Gold() < RegistryValues.Read_i("gold_take"))
             {
                 break;
             }
         }
     }
 }
コード例 #2
0
ファイル: Pack.cs プロジェクト: sobczi/Selenium-Gladiatus
        public static void Buy()
        {
            if (!RegistryValues.Read_b("c_pack") || RegistryValues.Read_i("gold_pack") > Get.Gold())
            {
                return;
            }
            Read_packages();
            while (Get.Gold() > Settings.gold_pack)
            {
                Navigation.Guild_market();
                if (!Basic.Search_element("//input[@value='Kup']"))
                {
                    return;
                }
                int found_case   = 0;
                int orginal_case = 0;

                int gold_level = Get.Gold();
                for (int i = 0; i < lines.Count(); i++)
                {
                    if (gold_level - Convert.ToInt32(prices[i]) > 0)
                    {
                        found_case   = i;
                        orginal_case = i;
                        break;
                    }
                }
                int first_it  = Bot.driver.FindElementsByXPath("//input[@value='Kup']").Count;
                int second_it = Bot.driver.FindElementsByXPath("//input[@value='Anuluj']").Count;
                int it        = first_it + second_it;

                Item item = new Item();
                while (true)
                {
                    item = new Item
                    {
                        name      = classes[found_case],
                        price     = prices[found_case],
                        level     = levels[found_case],
                        quality   = qualities[found_case],
                        amount    = amounts[found_case],
                        soulbound = soulbounds[found_case]
                    };

                    List <IWebElement> elements  = new List <IWebElement>();
                    List <int>         positions = new List <int>();
                    for (int i = 2; i < it + 2; i++)
                    {
                        if (Basic.Search_element("//section[@id='market_table']//tr[position()='" + Convert.ToString(i) + "']/" + "td[@align='center']/input[@value='Kup']"))
                        {
                            elements.Add(Get.Element("//section[@id='market_table']//" + "tr[position()='" + Convert.ToString(i) + "']/td[@style]/div[@style]"));
                            positions.Add(i);
                        }
                    }

                    int found_i = -1;
                    for (int i = 0; i < elements.Count; i++)
                    {
                        if (Compare_elements(elements.ElementAt(i), found_case))
                        {
                            found_i  = positions[i];
                            found_it = found_case;
                            break;
                        }
                    }

                    if (found_i != -1)
                    {
                        int gold_before = Get.Gold();
                        Basic.Click_element("//section[@id='market_table']//tr[position()='" + Convert.ToString(found_i) + "']" + "/td[@align='center']/input[@value='Kup']");
                        if (gold_before - Get.Gold() == Convert.ToInt32(item.price))
                        {
                            break;
                        }
                    }

                    if (found_case != lines.Count() - 1)
                    {
                        found_case++;
                    }
                    else if (Basic.Search_element("//a[contains(text(),'Następna strona')]") &&
                             found_case == lines.Count() - 1)
                    {
                        found_case = orginal_case;
                        Basic.Click_element("//a[contains(text(),'Następna strona')]");
                    }
                    else if (found_case == lines.Count() - 1)
                    {
                        return;
                    }
                }

                Prepare_xpath(item);
                Navigation.Packages();
                Navigation.Filter_packages(categories[found_case], qualities[found_case]);
                Navigation.Backpack(Settings.b_sell);
                if (!Take_from_packages())
                {
                    return;
                }
                Sell_on_market();
            }
        }