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}개 항목 다운로드 시작..."); }); }
public BaseSetup() { SeleniumWrapper = new SeleniumWrapper(); config = ConfigAccessor.GetApplicationConfiguration(); baseUrl = config.BaseUrl; }
public CreateMenu(SeleniumWrapper seleniumWrapper) { user = seleniumWrapper; }
protected BaseSetup(SeleniumWrapper seleniumWrapper) { SeleniumWrapper = seleniumWrapper; }
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()); } }); }
protected BaseTeardown(SeleniumWrapper seleniumWrapper) { SeleniumWrapper = seleniumWrapper; }
private void SetAttribute(SeleniumWrapper selenium, IWebElement element, string attName, string attValue) { selenium.Driver.ExecuteScript("arguments[0].setAttribute(arguments[1], arguments[2]);", element, attName, attValue); }
public CloseSeleniumTask(SeleniumWrapper selenium) { Selenium = selenium; }
public static object ExecuteScript(this SeleniumWrapper wrapper, string script, params object[] args) { return(wrapper.driver.ExecuteScript(script, args)); }
public static void ConsoleWriteError(this SeleniumWrapper wrapper, string text) { wrapper.ExecuteScript("console.error(arguments[0]);", text); }
public CreateMenu(SeleniumWrapper seleniumWrapper) { user = seleniumWrapper; config = ConfigAccessor.GetApplicationConfiguration(); menuApiUrl = config.MenuApiUrl; }
public void ClickAddtoBetSlip() { SeleniumWrapper.ClickElement(AddtoBetSlipXpath); Thread.Sleep(5000); }
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(); }