public void ClickRace()
 {
     SeleniumWrapper.ClickElement(SelectRaceXpath);
     Thread.Sleep(3000);
 }
 public void ClickRacingLink()
 {
     SeleniumWrapper.ClickElement(RacingLinkXpath);
     Thread.Sleep(3000);
 }
 public void ClickNextToJumpLink()
 {
     SeleniumWrapper.ClickElement(NextToJumpLinkXpath);
     Thread.Sleep(3000);
 }
        public static void ProcessPinterest(string url)
        {
            Task.Run(async() =>
            {
                string user = Regex.Match(url, "pinterest.co.kr/(.*?)/").Groups[1].Value;
                var sw      = new SeleniumWrapper();

                MainWindow.Instance.Fade_MiddlePopup(true, "접속중...");
                sw.Navigate(url);
                sw.WaitComplete();
                sw.ClickXPath("//div[@data-test-id='loginButton']");
                MainWindow.Instance.ModifyText_MiddlePopup("로그인중...");
                sw.SendKeyId("email", Settings.Instance.Pinterest.Id);
                sw.SendKeyId("password", Settings.Instance.Pinterest.Password);
                sw.ClickXPath("//div[@data-test-id='registerFormSubmitButton']");
                await Task.Delay(10000);
                sw.WaitComplete();
                sw.Navigate($"https://www.pinterest.co.kr/{user}/pins/");
                await Task.Delay(5000);
                sw.WaitComplete();

                List <string> images = new List <string>();
                string last;
                do
                {
                    last = sw.GetHeight();
                    sw.ScrollDown();
                    await Task.Delay(2000);

                    foreach (var image in PinParser.ParseImage(sw.GetHtml()))
                    {
                        if (!images.Contains(image))
                        {
                            images.Add(image);
                            MainWindow.Instance.ModifyText_MiddlePopup($"가져오는중... [{images.Count}]");
                        }
                    }
                } while (last != sw.GetHeight());

                int height = Convert.ToInt32(sw.GetHeight());
                for (int i = 0; i < height; i += 50)
                {
                    sw.Scroll(i);
                    await Task.Delay(1);
                    foreach (var image in PinParser.ParseImage(sw.GetHtml()))
                    {
                        if (!images.Contains(image))
                        {
                            if (!images.Contains(image))
                            {
                                images.Add(image);
                                MainWindow.Instance.ModifyText_MiddlePopup($"재 수집중... [{images.Count}]");
                            }
                        }
                    }
                }

                sw.Close();

                string dir = Path.Combine(Settings.Instance.Pinterest.Path, DeleteInvalid(user));
                Directory.CreateDirectory(dir);

                var se     = Koromo_Copy.Interface.SemaphoreExtends.MakeDefault();
                se.Referer = "https://www.pinterest.co.kr/";

                DownloadSpace.Instance.RequestDownload($"pinterest: {user}",
                                                       images.ToArray(),
                                                       images.Select(x => Path.Combine(dir, x.Split('/').Last())).ToArray(),
                                                       se,
                                                       dir + '\\',
                                                       null
                                                       );
                MainWindow.Instance.FadeOut_MiddlePopup($"{images.Count}개 항목 다운로드 시작...");
            });
        }
Example #5
0
 public BaseSetup()
 {
     SeleniumWrapper = new SeleniumWrapper();
     config          = ConfigAccessor.GetApplicationConfiguration();
     baseUrl         = config.BaseUrl;
 }
 public CreateMenu(SeleniumWrapper seleniumWrapper)
 {
     user = seleniumWrapper;
 }
Example #7
0
 protected BaseSetup(SeleniumWrapper seleniumWrapper)
 {
     SeleniumWrapper = seleniumWrapper;
 }
Example #8
0
        private void SeriesManagerElements_Loaded(object sender, RoutedEventArgs e)
        {
            Task.Run(() =>
            {
                if (!string.IsNullOrEmpty(url))
                {
                    manager = SeriesInfo.Instance.SelectManager(url);

                    if (manager == null)
                    {
                        Application.Current.Dispatcher.BeginInvoke(new Action(
                                                                       delegate
                        {
                            Title.Foreground = Brushes.Red;
                            Title.Text       = "오류 - 만족하는 URL 유형을 찾을 수 없습니다.\r\n옳바른 URL인지 확인해주세요.\r\nURL: " + url;
                            CollectStatusPanel.Visibility = Visibility.Collapsed;
                            init_error = true;
                        }));
                        return;
                    }

                    if (manager.EngineType == ManagerEngineType.UsingDriver)
                    {
                        wrapper = new SeleniumWrapper();
                    }

                    string top_html     = "";
                    string inner_counts = "";

                    var wc = manager.GetWebClient();

                    if (wrapper == null)
                    {
                        if (wc != null)
                        {
                            top_html = wc.DownloadString(url);
                        }
                        else
                        {
                            top_html = NetCommon.DownloadString(url);
                        }
                    }

                    switch (manager.Type)
                    {
                    case ManagerType.SingleArticleSingleImage:
                        {
                        }
                        break;

                    case ManagerType.SingleArticleSingleMovie:
                        {
                        }
                        break;

                    case ManagerType.SingleArticleMultipleImages:
                        {
                            if (wrapper == null)
                            {
                                article = manager.ParseArticle(top_html);
                            }
                            else
                            {
                                wrapper.Navigate(url);
                                try { wrapper.ClickXPath("//a[@class='maia-button maia-button-primary']"); } catch { }

                                article = manager.ParseArticle(wrapper.GetHtml());
                            }
                            title        = article.Title;
                            thumbnail    = article.Thumbnail;
                            inner_counts = $"사진 {article.ImagesLink.Count}장";
                        }
                        break;

                    case ManagerType.SingleSeriesMultipleArticles:
                        {
                            if (wrapper == null)
                            {
                                series = manager.ParseSeries(top_html);
                            }
                            else
                            {
                                wrapper.Navigate(url);
                                try { wrapper.ClickXPath("//a[@class='maia-button maia-button-primary']"); } catch { }

                                series = manager.ParseSeries(wrapper.GetHtml());
                            }
                            title        = series.Title;
                            thumbnail    = series.Thumbnail;
                            inner_counts = $"작품 {series.Articles.Count}개";
                        }
                        break;
                    }

                    Application.Current.Dispatcher.BeginInvoke(new Action(
                                                                   delegate
                    {
                        if (!string.IsNullOrEmpty(thumbnail))
                        {
                            LoadThumbnail(thumbnail);
                        }

                        Title.Text           = title;
                        SiteName.Text        = manager.Name;
                        LatestSyncDate.Text  = MakeSyncDate(new TimeSpan(0, 0, 0, 0));
                        InnerSitesCount.Text = inner_counts;
                        DownloadState.Text   = "다운로드 중";
                    }));

                    Task.Run(() => StartFirstDownloads());
                }
            });
        }
Example #9
0
 protected BaseTeardown(SeleniumWrapper seleniumWrapper)
 {
     SeleniumWrapper = seleniumWrapper;
 }
Example #10
0
 private void SetAttribute(SeleniumWrapper selenium, IWebElement element, string attName, string attValue)
 {
     selenium.Driver.ExecuteScript("arguments[0].setAttribute(arguments[1], arguments[2]);", element, attName, attValue);
 }
Example #11
0
 public CloseSeleniumTask(SeleniumWrapper selenium)
 {
     Selenium = selenium;
 }
Example #12
0
 public static object ExecuteScript(this SeleniumWrapper wrapper, string script, params object[] args)
 {
     return(wrapper.driver.ExecuteScript(script, args));
 }
Example #13
0
 public static void ConsoleWriteError(this SeleniumWrapper wrapper, string text)
 {
     wrapper.ExecuteScript("console.error(arguments[0]);", text);
 }
Example #14
0
 public CreateMenu(SeleniumWrapper seleniumWrapper)
 {
     user       = seleniumWrapper;
     config     = ConfigAccessor.GetApplicationConfiguration();
     menuApiUrl = config.MenuApiUrl;
 }
 public void ClickAddtoBetSlip()
 {
     SeleniumWrapper.ClickElement(AddtoBetSlipXpath);
     Thread.Sleep(5000);
 }
Example #16
0
 public WebBehaviourExecutionContext(SeleniumWrapper selenium, IStudioEnvironment studio)
 {
     this.selenium = selenium;
     this.studio   = studio;
 }
 public void ClickBetSlip()
 {
     SeleniumWrapper.ClickElement(BetSlipLinkXpath);
     Thread.Sleep(3000);
 }
 public void TestInitialize()
 {
     TestCommon.ResetState();
     _seleniumWrapper = new SeleniumWrapper();
 }