/* * Наколение контактов с текущей страницы * */ public void ParseSearchInfoPage() { string t1; DataIn tst = new DataIn(); ; for (int e = 1; e < 10; e++) { t1 = "//*[@id='results']/li[" + e.ToString() + "]/div/div[3]/a"; if (SeleniumHelper.IsElementPresent(By.XPath(t1)) == true) { var element = SeleniumHelper.WaitForElement(By.XPath(t1)); if (element.Text == "Connect") { t1 = "//*[@id='results']/li[" + e.ToString() + "]/div/h3/a"; var element1 = SeleniumHelper.WaitForElement(By.XPath(t1)); tst.urlPath = element1.GetAttribute("href").ToString(); tst.fullName = element1.Text; tst.eUserName = ""; tst.eHeadLine = ""; tst.eLinkPage = ""; tst.eSummary = ""; tst.curIndustry = curIndustry; // Сохраняем для последующей работы data.Add(tst); } } } return; }
// If user accepted an invitation public void CreateAcceptedRecord(string urlProfile) { IWebElement elName; DataIn person = new DataIn(); // Переходим на страницу browser.SetCurrentWindow(0); browser.LinkedInNavigateTo(urlProfile); person.messageText = ""; person.isMessageSend = true; person.eLinkPage = urlProfile; person.curIndustry = "0"; try { // Поучаем данные с элементов профиля пользователя //*[@id='tc-actions-send-message'] elName = SeleniumHelper.WaitForElement(By.XPath("//*[@id='tc-actions-send-message']")); if (elName.Text != "Send a message") { return; } // Получить имя пользователя elName = SeleniumHelper.WaitForElement(By.XPath("//*[@id='name']/h1/span/span[1]")); person.eUserName = elName.Text; // Текущая должность пользователя elName = SeleniumHelper.WaitForElement(By.XPath("//*[@id='headline']/p")); person.eHeadLine = elName.Text; // Резюме пользователя elName = SeleniumHelper.WaitForElement(By.XPath("//*[@id='background']")); person.eSummary = elName.Text; // Создаем новую запись crmView.CreateNewUserRecord(person); browser.SetCurrentWindow(0); } catch (Exception ex) { return; } return; }
public void CreateNewUserRecord(DataIn userData) { string firstName, lastName; IWebElement element; firstName = userData.eUserName.Split(' ')[0]; lastName = userData.eUserName.Split(' ')[1]; browser.SetCurrentWindow(1); browser.CrmNavigateTo(GetBaseUrl() + "index.php?module=Contacts&action=EditView&return_module=Contacts&return_action=index"); // Получаем элементы для доступа // Имя if (SeleniumHelper.IsElementPresent(By.XPath("//*[@id='first_name']"))) { element = SeleniumHelper.WaitForElement(By.XPath("//*[@id='first_name']")); element.Clear(); element.SendKeys(firstName); } // Фамилия if (SeleniumHelper.IsElementPresent(By.XPath("//*[@id='last_name']"))) { element = SeleniumHelper.WaitForElement(By.XPath("//*[@id='last_name']")); element.Clear(); element.SendKeys(lastName); } // Должность if (SeleniumHelper.IsElementPresent(By.XPath("//*[@id='title']"))) { element = SeleniumHelper.WaitForElement(By.XPath("//*[@id='title']")); element.Clear(); element.SendKeys(userData.eHeadLine); } // Индустрия if (SeleniumHelper.IsElementPresent(By.XPath("//*[@id='industryid_c']"))) { element = SeleniumHelper.WaitForElement(By.XPath("//*[@id='industryid_c']")); element.Clear(); element.SendKeys(userData.curIndustry); } // Ссылка на профиль if (SeleniumHelper.IsElementPresent(By.XPath("//*[@id='social_nework_url_c']"))) { element = SeleniumHelper.WaitForElement(By.XPath("//*[@id='social_nework_url_c']")); element.Clear(); element.SendKeys(userData.eLinkPage); } // Описание if (SeleniumHelper.IsElementPresent(By.XPath("//*[@id='description']"))) { element = SeleniumHelper.WaitForElement(By.XPath("//*[@id='description']")); element.Clear(); try { // Если нет возможности набрать оставляем как есть //element.SendKeys(userData.eSummary); ; } catch (Exception ex) { ; } } //*[@id='messagewassent_c'] // Признак отсылки сообщения if (SeleniumHelper.IsElementPresent(By.Id("messagewassent_c"))) { element = SeleniumHelper.WaitForElement(By.Id("messagewassent_c")); if (userData.isMessageSend == true) { element.Click(); } } // Кнопка сохранить if (SeleniumHelper.IsElementPresent(By.XPath("//*[@id='SAVE_HEADER']"))) { element = SeleniumHelper.WaitForElement(By.XPath("//*[@id='SAVE_HEADER']")); element.Click(); } return; }
/* * Отсылка запроса на добавлениие нового пользователя * * */ public bool SendInvite(ref DataIn curData) { string tmpObj, tmpStr; IWebElement elButton, eFriend, eInvite, elInputBox; int rndTime; // Ожидание перехода на страницу пользователя rndTime = randomGenerator.Next(5, 250); System.Threading.Thread.Sleep(rndTime * 1000); // Переходим на страницу профиля пользователя browser.LinkedInNavigateTo(curData.urlPath); try { if (SeleniumHelper.IsElementPresent(By.XPath("//*[@id='top-card']/div/div[1]/div[2]/div[2]/div[2]/a"))) { elButton = SeleniumHelper.WaitForElement(By.XPath("//*[@id='top-card']/div/div[1]/div[2]/div[2]/div[2]/a")); } else { if (SeleniumHelper.IsElementPresent(By.XPath("//*[@id='top-card']/div/div[1]/div/div[2]/div[2]/a"))) { elButton = SeleniumHelper.WaitForElement(By.XPath("//*[@id='top-card']/div/div[1]/div/div[2]/div[2]/a")); } else { if (SeleniumHelper.IsElementPresent(By.XPath("//*[@id='top-card']/div/div[1]/div/div[2]/div[2]/div/a"))) { elButton = SeleniumHelper.WaitForElement(By.XPath("//*[@id='top-card']/div/div[1]/div/div[2]/div[2]/div/a")); } else return false; } } tmpObj = "0"; } catch (Exception ex) { // Кнопка не найдена return false; } try { if (elButton.Text == "Connect") { curData.eUserName = ""; curData.eHeadLine = ""; curData.eLinkPage = ""; curData.eSummary = ""; curData.eUserName = SeleniumHelper.WaitForElement(By.XPath("//*[@id='name']/h1/span/span[1]")).Text; curData.eHeadLine = SeleniumHelper.WaitForElement(By.XPath("//*[@id='headline']/p")).Text; if (SeleniumHelper.IsElementPresent(By.XPath("//*[@id='top-card']/div/div[2]/div[2]/ul/li/dl/dd/a"))) { curData.eLinkPage = SeleniumHelper.WaitForElement(By.XPath("//*[@id='top-card']/div/div[2]/div[2]/ul/li/dl/dd/a")).Text; tmpObj = "1"; } else { //*[@id='top-card']/div/div[2]/div/ul/li/dl/dd/a if (SeleniumHelper.IsElementPresent(By.XPath("//*[@id='top-card']/div/div[2]/div/ul/li/dl/dd/a"))) { curData.eLinkPage = SeleniumHelper.WaitForElement(By.XPath("//*[@id='top-card']/div/div[2]/div/ul/li/dl/dd/a")).Text; tmpObj = "2"; } else { ; } } if (SeleniumHelper.IsElementPresent(By.XPath("//*[@id='background']"))) { curData.eSummary = SeleniumHelper.WaitForElement(By.XPath("//*[@id='background']")).Text.ToString(); } } } catch (Exception ex) { return false; } if (curData.eLinkPage == "") return false; // Отсылаем запрос на Invite elButton.Click(); System.Threading.Thread.Sleep(6000); if (SeleniumHelper.IsElementPresent(By.XPath("//*[@id='emailAddress-invitee-invitation']"))) { // Обнаружена блокировка account // Задержка System.Threading.Thread.Sleep(randomGenerator.Next(10, 70) * 60 * 1000); return false; } eFriend = SeleniumHelper.WaitForElement(By.XPath("//*[@id='IF-reason-iweReconnect']")); // Элемент указанный ниже не найден на странице, предположим что это кнопка Invite eInvite = SeleniumHelper.WaitForElement(By.XPath("//*[@id='send-invite-button']")); elInputBox = SeleniumHelper.WaitForElement(By.XPath("//*[@id='greeting-iweReconnect']")); eFriend.Click(); rndTime = randomGenerator.Next(5, 100); // Очистить текст сообщения if (File.Exists("data\\Messages\\Default.txt")) { tmpStr = System.IO.File.ReadAllText("data\\Messages\\Default.txt"); elInputBox.Clear(); elInputBox.SendKeys(tmpStr); } // Загрузить текст сообщения System.Threading.Thread.Sleep(rndTime * 1000); eInvite.Click(); return true; }