static void RegisterData(Alert alert, string html) { LogEvent("Записване на данни в админ панела", alert); Driver.Navigate().GoToUrl("https://quick.tuxbg.net/?action=ExtContent12"); Wait.Until(ExpectedConditions.ElementIsVisible(By.TagName("iframe"))); Driver.SwitchTo().Frame(0); FindElement(By.LinkText("Добави известие")).Click(); // fill in meta data FindElement(By.Id("Import_url")).SendKeys(alert.Url()); FindElement(By.Id("Import_id_post")).SendKeys(alert.content_id); FindElement(By.Id("Import_contact_info")).SendKeys(alert.author); // fill in post data FindElement(By.CssSelector("a[title='Код']")).Click(); FindElement(By.ClassName("cke_source")).SetAttribute("value", html); FindElement(By.CssSelector("input[type='submit']")).Click(); Wait.Until(ExpectedConditions.ElementIsVisible(By.Id("massiveOperation"))); WaitRandom(); }
static string ReadPost(Alert alert) { LogEvent("Прочитане на публикация..."); string htmlResult = string.Empty; //string cssSelector = ".userContentWrapper"; string cssSelector = "#contentArea"; // read post data Driver.Navigate().GoToUrl(alert.Url()); IWebElement postElement = null; postElement = FindElement(By.CssSelector(cssSelector)); htmlResult = postElement.GetInnerHtml(); LogEvent($"Публикацията е прочетена: {htmlResult.Length} знака"); //Hover (postElement); // use when original Social Fixer since icons don't show unless post is hovered try { LogEvent("Абониране за публикация..."); PostSubscribe(postElement); WaitRandom(); LogEvent("Абонирането е успешно"); } catch (Exception ex) { throw new CantSubscribeToPostException("Абонирането не беше успешно", ex); } try { LogEvent("Запазване на публикацията в Social Fixer..."); Sfx.AddPost(alert.content_id); LogEvent("Запазване на публикацията в Social Fixer успешно"); WaitRandom(); } catch (Exception ex) { throw new CantMarkPostReadException($"Запазване на публикацията в Social Fixer не беше успешно", ex); } return(htmlResult); }
/// <summary> /// Retrieves target alert. /// </summary> /// <returns>The alert.</returns> static Alert GetAlert() { LogEvent("Търсене на известия..."); Driver.Navigate().GoToUrl("https://facebook.com/notifications"); Wait.Until(ExpectedConditions.ElementIsVisible(By.CssSelector("ul[data-testid=see_all_list] li"))); WaitRandom(); var alertElements = FindElements(By.CssSelector("ul[data-testid=see_all_list] li")); KeyValuePair <Alert, IWebElement>[] alertArrayKV = alertElements .Select(x => new KeyValuePair <Alert, IWebElement> (Alert.FromElement(x), x)) .OrderByDescending(x => x.Key.microtime_sent).ToArray(); Alert resultAlert = null; IWebElement element = null; KeyValuePair <Alert, IWebElement> alertKV = new KeyValuePair <Alert, IWebElement> (null, null); foreach (var kv in alertArrayKV) { if (kv.Value.Text.Contains("добави ")) { alertKV = kv; break; } if (kv.Value.Text.Contains("добавиха ")) { alertKV = kv; break; } if (kv.Value.Text.Contains("публикува в")) { alertKV = kv; break; } if (kv.Value.Text.Contains("публикуваха в")) { alertKV = kv; break; } if (kv.Value.Text.Contains("коментира ")) { alertKV = kv; break; } if (kv.Value.Text.Contains("коментираха ")) { alertKV = kv; break; } } if (alertKV.Key != null) { resultAlert = alertKV.Key; Hover(alertKV.Value); LogEvent($"Избрано известие {resultAlert.Url ()}", resultAlert); } WaitRandom(); return(resultAlert); }