コード例 #1
0
ファイル: CrmHelper.cs プロジェクト: testgithub21/linkedinbot
        public void EmailMassSending()
        {
            // IWebElement elList, elButton, elDateField, tstItem;
            IWebElement elList, elButton, elDateField;
            //changed curDate from (2013, 3, 1) than change it back
            //DateTime curDate = new DateTime(2013, 9, 16);
            DateTime curDate = new DateTime(2013, 7, 12);
            //DateTime curDate = new DateTime(2014, 1, 8);
            DateTime endTime = new DateTime(2016, 9, 20);
            string   tmpStr  = "";
            int      i;

            // Переключится на режим расширенного поиска

            SetSearchMode(1);
            personList.Clear();
            elList = SeleniumHelper.WaitForElement(By.XPath("//*[@id='messagewassent_c_advanced']"));
            SelectElement sel = new SelectElement(elList);

            sel.SelectByText("Да");
            //sel.SelectByText("Нет");
            //elList = SeleniumHelper.WaitForElement(By.XPath("//*[@id='assigned_user_id_advanced']"));
            //sel = new SelectElement(elList);
            //sel.SelectByText(Settings.BotSettings.FullName);
            // Список кому запрещено отсылать
            elList = SeleniumHelper.WaitForElement(By.XPath("//*[@id='do_not_call_advanced']"));
            sel    = new SelectElement(elList);
            sel.SelectByText("Нет");
            elList = SeleniumHelper.WaitForElement(By.Id("assigned_user_id_advanced"));
            sel    = new SelectElement(elList);
            tmpStr = Settings.BotSettings.FullName.ToString();
            sel.SelectByText(tmpStr);
            elDateField = SeleniumHelper.WaitForElement(By.XPath("//*[@id='range_date_sent_4_c_advanced']"));
            elDateField.Clear();

            elButton = SeleniumHelper.WaitForElement(By.XPath("//*[@id='search_form_submit_advanced']"));
            tmpStr   = curDate.Day.ToString() + "/" + curDate.Month.ToString() + "/" + curDate.Year.ToString();

            //endTime = DateTime.Now.Date.AddDays(1);
            endTime     = endTime.AddDays(1);
            elDateField = SeleniumHelper.WaitForElement(By.XPath("//*[@id='range_date_entered_advanced']"));
            elDateField.Clear();
            elDateField.SendKeys(tmpStr);

            i = 0;
            while (true)
            {
                tmpStr      = curDate.Day.ToString() + "/" + curDate.Month.ToString() + "/" + curDate.Year.ToString();
                elDateField = SeleniumHelper.WaitForElement(By.XPath("//*[@id='range_date_entered_advanced']"));
                elButton    = SeleniumHelper.WaitForElement(By.XPath("//*[@id='search_form_submit_advanced']"));

                elDateField.Clear();
                elDateField.SendKeys(tmpStr);
                elButton.Click();
                System.Threading.Thread.Sleep(5000);
                if (SeleniumHelper.IsElementPresent(By.XPath("//*[@id='MassUpdate']/div[1]/p")) == false)
                {
                    // Найдена новая запись
                    // AddPersonRecord();
                    AddPersonRecordForMassEmail();
                    //curDate = curDate.AddDays(1);
                }
                curDate = curDate.AddDays(1);
                if (curDate.CompareTo(endTime) == 0)
                {
                    break;
                }
            }
            for (i = 0; i < personList.Count(); i++)
            {
                SendMailUser(personList[i]);
                //if (SendMailUser(personList[i]) == false)
                //{
                //    UnSetMessageSend(personList[i]);
                //}
            }
            return;
        }
コード例 #2
0
ファイル: CrmHelper.cs プロジェクト: testgithub21/linkedinbot
        public void AddPersonRecordForMassEmail()
        {
            IWebElement elcrmLink, elUserLink;
            string      tmpStr, tStr;
            int         i, j;
            PersonTest  person = new PersonTest();

            //    *[@id='MassUpdate']/table/tbody/tr[4]/td[3]/b/a
            //    *[@id='MassUpdate']/table/tbody/tr[4]/td[5]
            //    *[@id='MassUpdate']/table/tbody/tr[4]/td[8]
            //     .//*[@id='listViewNextButton_bottom']
            for (i = 0; i < 20; i++)
            {
                //имя пользователя в результатах поиска сrmLink
                tmpStr = "//*[@id='MassUpdate']/table/tbody/tr[" + (i + 3).ToString() + "]/td[3]/b/a";
                if (SeleniumHelper.IsElementPresent(By.XPath(tmpStr)))
                {
                    elcrmLink = SeleniumHelper.WaitForElement(By.XPath(tmpStr));
                    //linkedIn Link
                    tmpStr     = "//*[@id='MassUpdate']/table/tbody/tr[" + (i + 3).ToString() + "]/td[5]";
                    elUserLink = SeleniumHelper.WaitForElement(By.XPath(tmpStr));
                    // industryId
                    //tmpStr = "//*[@id='MassUpdate']/table/tbody/tr[" + (i + 3).ToString() + "]/td[8]";
                    //elIndustry = SeleniumHelper.WaitForElement(By.XPath(tmpStr));
                    //if (elIndustry.Text == "")
                    //    person.curIndustry = "0";
                    //else
                    //    person.curIndustry = elIndustry.Text;
                    //person.curIndustry = person.curIndustry.Replace(" ", "");
                    person.linkedinlink = elUserLink.Text;
                    person.crmLink      = elcrmLink.GetAttribute("href").ToString();
                    //      здесь была работа с сообщениями
                    // Заполнение поля Меssage
                    tStr = "data\\MassEmail\\" + Settings.BotSettings.CurrentUser + "\\Default.txt";
                    if (File.Exists(tStr))
                    {
                        tmpStr             = System.IO.File.ReadAllText(tStr);
                        person.messageText = tmpStr;
                        //person.isMessageSend = true;
                    }
                    else
                    {
                        continue;
                    }
                    //                 Добавление в список
                    personList.Add(person);
                    //                здесь был сontinue
                    return;
                }
                //                continue;
                //            }

                //            for (j = 0; j < Settings.BotSettings.listIndustry.Count(); j++)
                //            {
                //                tStr = Settings.BotSettings.listIndustry[j];
                //                if (tStr == person.curIndustry)
                //                {
                //                     Заполнение поля Меssage
                //                    tStr = "data\\MassEmail\\" + Settings.BotSettings.CurrentUser + "\\Message_" + person.curIndustry + ".txt";
                //                    if (File.Exists(tStr))
                //                    {
                //                        tmpStr = System.IO.File.ReadAllText(tStr);
                //                        person.messageText = tmpStr;
                //                        person.isMessageSend = true;
                //                    }
                //                    else
                //                        continue;
                //                     Добавление в список
                //                    personList.Add(person);
                //                    continue;
                //                }
                //            }
                //        }
                //        else
                //            break;
                //    }

                //    return;
            }
        }
コード例 #3
0
ファイル: CrmHelper.cs プロジェクト: testgithub21/linkedinbot
        //public void AddPersonRecord()
        //{
        //    IWebElement elcrmLink, elUserLink, elIndustry;
        //    string tmpStr, tStr;
        //    int i, j;
        //    PersonIn person = new PersonIn();
        //    //*[@id='MassUpdate']/table/tbody/tr[4]/td[3]/b/a
        //    //*[@id='MassUpdate']/table/tbody/tr[4]/td[5]
        //    //*[@id='MassUpdate']/table/tbody/tr[4]/td[8]
        //    // .//*[@id='listViewNextButton_bottom']
        //    for (i = 0; i < 20; i++)
        //    {
        //        tmpStr = "//*[@id='MassUpdate']/table/tbody/tr[" + (i + 3).ToString() + "]/td[3]/b/a";
        //        if (SeleniumHelper.IsElementPresent(By.XPath(tmpStr)))
        //        {
        //            elcrmLink = SeleniumHelper.WaitForElement(By.XPath(tmpStr));
        //            tmpStr = "//*[@id='MassUpdate']/table/tbody/tr[" + (i + 3).ToString() + "]/td[5]";
        //            elUserLink = SeleniumHelper.WaitForElement(By.XPath(tmpStr));
        //            tmpStr = "//*[@id='MassUpdate']/table/tbody/tr[" + (i + 3).ToString() + "]/td[8]";
        //            elIndustry = SeleniumHelper.WaitForElement(By.XPath(tmpStr));
        //            if (elIndustry.Text == "")
        //                person.curIndustry = "0";
        //            else
        //                person.curIndustry = elIndustry.Text;
        //            person.curIndustry = person.curIndustry.Replace(" ", "");
        //            person.urlLink = elUserLink.Text;
        //            person.crmLink = elcrmLink.GetAttribute("href").ToString();
        //            person.messageText = "";
        //            person.isMessageSend = false;
        //            if (Settings.BotSettings.listIndustry[0] == "")
        //            {
        //                // Заполнение поля Меssage
        //                tStr = "data\\MassEmail\\" + Settings.BotSettings.CurrentUser + "\\Default.txt";
        //                if (File.Exists(tStr))
        //                {
        //                    tmpStr = System.IO.File.ReadAllText(tStr);
        //                    person.messageText = tmpStr;
        //                    person.isMessageSend = true;
        //                }
        //                else
        //                    continue;
        //                // Добавление в список
        //                personList.Add(person);
        //                continue;
        //            }

        //            for (j = 0; j < Settings.BotSettings.listIndustry.Count(); j++)
        //            {
        //                tStr = Settings.BotSettings.listIndustry[j];
        //                if (tStr == person.curIndustry)
        //                {
        //                    // Заполнение поля Меssage
        //                    tStr = "data\\MassEmail\\" + Settings.BotSettings.CurrentUser + "\\Message_" + person.curIndustry + ".txt";
        //                    if (File.Exists(tStr))
        //                    {
        //                        tmpStr = System.IO.File.ReadAllText(tStr);
        //                        person.messageText = tmpStr;
        //                        person.isMessageSend = true;
        //                    }
        //                    else
        //                        continue;
        //                    // Добавление в список
        //                    personList.Add(person);
        //                    continue;
        //                }
        //            }
        //        }
        //        else
        //            break;
        //    }

        //    return;
        //}

        //bool UnSetMessageSend(PersonTest person)
        //{
        //    IWebElement tstItem;
        //    int i = 0;

        //    browser.CrmNavigateTo(person.crmLink);
        //    System.Threading.Thread.Sleep(3000);
        //    try
        //    {
        //        tstItem = SeleniumHelper.WaitForElement(By.XPath("//*[@id='edit_button']"));
        //        tstItem.Click();
        //        System.Threading.Thread.Sleep(3000);

        //        tstItem = SeleniumHelper.WaitForElement(By.XPath("//*[@id='messagewassent_c']"));
        //        if (tstItem.Selected == true)
        //        {
        //            tstItem.Click();
        //        }
        //        //tstItem = SeleniumHelper.WaitForElement(By.XPath("//*[@id='edit_button']"));
        //        //tstItem.Click();
        //        tstItem = SeleniumHelper.WaitForElement(By.XPath("//*[@id='SAVE_HEADER']"));
        //        tstItem.Click();
        //        System.Threading.Thread.Sleep(3000);

        //    }
        //    catch (Exception ex)
        //    {
        //        return false;
        //    }
        //    return true;
        //}

        /*
         * Отсылка пользовательского сообщения Пользователю
         *
         */
        //rename

        // testing - public void SendMailUser()
        //public bool SendMailUser(PersonIn person)
        //{
        //    IWebElement elButton, elSubject, elMessage, elSendButton, elCancelButton, elUserName;
        //    string tmpStr, firstName, lastName, fullName;
        //    try
        //    {
        //        // Перейти на страницу пользователя
        //        browser.LinkedInNavigateTo(person.urlLink);
        //        //browser.LinkedInNavigateTo("https://mx.linkedin.com/in/nathan-green-17018a127");
        //        elButton = SeleniumHelper.WaitForElement(By.XPath("//*[@id='tc-actions-send-message']"));
        //        if (elButton.Text == "Send a message")
        //        {
        //            elUserName = SeleniumHelper.WaitForElement(By.XPath("//*[@id='name']/h1/span/span[1]"));
        //            fullName = elUserName.Text;

        //            elButton.Click();
        //            //System.Threading.Thread.Sleep(3000);
        //            elSubject = SeleniumHelper.WaitForElement(By.XPath("//*[@id='subject-msgForm']"));
        //            elMessage = SeleniumHelper.WaitForElement(By.XPath("//*[@id='body-msgForm']"));
        //            elCancelButton = SeleniumHelper.WaitForElement(By.XPath("//*[@class='dialog-close']"));
        //            elSendButton = SeleniumHelper.WaitForElement(By.XPath("//*[@id='compose-dialog-submit']"));
        //            // Установить заголовок сообщения
        //            elSubject.Clear();
        //            firstName = fullName.Split(' ')[0];
        //            lastName = fullName.Split(' ')[1];

        //            tmpStr = Settings.BotSettings.SubjectMessage;
        //            tmpStr = tmpStr.Replace("%FullName", fullName);
        //            tmpStr = tmpStr.Replace("%FirstName", firstName);
        //            tmpStr = tmpStr.Replace("%LastName", lastName);
        //            elSubject.SendKeys(tmpStr);

        //            tmpStr = person.messageText;
        //            tmpStr = tmpStr.Replace("%FullName", fullName);
        //            tmpStr = tmpStr.Replace("%FirstName", firstName);
        //            tmpStr = tmpStr.Replace("%LastName", lastName);
        //            elMessage.Clear();
        //            elMessage.SendKeys(tmpStr);
        //            //elCancelButton.Click();
        //            elSendButton.Click();
        //            //System.Threading.Thread.Sleep(5000);
        //        }
        //        else
        //        {
        //            return false;
        //        }
        //    }
        //    catch (Exception ex)
        //    {
        //        return false;
        //    }
        //    return true;
        //}

        /*
         * Отсылка пользовательского сообщения Пользователю test с voidом
         *
         */
        //public void SendMailUser()
        public bool SendMailUser(PersonTest person)
        {
            // elLogin, elPassword, signButton добавлены из-за блокировки сессии (Линкедин запрашивает авторизацию перед переходом на страницу юзера для отправки сообщения
            IWebElement elButton, elSubject, elMessage, elSendButton, elCancelButton, elUserName, elPassword, signButton, elLogin;
            string      tmpStr, firstName, lastName, fullName;

            try
            {
                //        // Перейти на страницу пользователя
                browser.LinkedInNavigateTo(person.linkedinlink);
                //browser.LinkedInNavigateTo("https://mx.linkedin.com/in/nathan-green-17018a127");
                // elButton = SeleniumHelper.WaitForElement(By.XPath("//*[@id='tc-actions-send-message']"));

                if (SeleniumHelper.IsElementPresent(By.Id("session_key-login")))
                {
                    SeleniumHelper.WaitForElement(By.Id("session_key-login"));
                    elLogin = browser.LinkedFindElement(By.Id("session_key-login"));
                    System.Threading.Thread.Sleep(5000);
                    elLogin.Clear();
                    elLogin.SendKeys(Settings.BotSettings.LoginLinkedIn);
                    SeleniumHelper.WaitForElement(By.XPath(".//*[@id='session_password-login']"));
                    elPassword = browser.LinkedFindElement(By.XPath(".//*[@id='session_password-login']"));
                    elPassword.SendKeys(Settings.BotSettings.PasswordLinkedIn);
                    System.Threading.Thread.Sleep(5000);
                    SeleniumHelper.WaitForElement(By.Id("btn-primary"));
                    signButton = browser.LinkedFindElement(By.Id("btn-primary"));
                    System.Threading.Thread.Sleep(5000);
                    signButton.Click();
                    //linkedView.LoginSessionBlocked();
                }
                else
                {
                    return(false);
                }
                elButton = SeleniumHelper.WaitForElement(By.XPath("//*[@id='tc-actions-send-message']"));
                if (elButton.Text == "Send a message")
                {
                    elUserName = SeleniumHelper.WaitForElement(By.XPath("//*[@id='name']/h1/span/span[1]"));
                    fullName   = elUserName.Text;

                    elButton.Click();
                    System.Threading.Thread.Sleep(3000);
                    elSubject      = SeleniumHelper.WaitForElement(By.XPath("//*[@id='subject-msgForm']"));
                    elMessage      = SeleniumHelper.WaitForElement(By.XPath("//*[@id='body-msgForm']"));
                    elCancelButton = SeleniumHelper.WaitForElement(By.XPath("//*[@class='dialog-close']"));
                    elSendButton   = SeleniumHelper.WaitForElement(By.XPath("//*[@id='compose-dialog-submit']"));
                    // Установить заголовок сообщения
                    elSubject.Clear();
                    firstName = fullName.Split(' ')[0];
                    lastName  = fullName.Split(' ')[1];

                    tmpStr = Settings.BotSettings.SubjectMessage;
                    tmpStr = tmpStr.Replace("%FullName", fullName);
                    tmpStr = tmpStr.Replace("%FirstName", firstName);
                    tmpStr = tmpStr.Replace("%LastName", lastName);
                    elSubject.SendKeys(tmpStr);

                    tmpStr = person.messageText;
                    tmpStr = tmpStr.Replace("%FullName", fullName);
                    tmpStr = tmpStr.Replace("%FirstName", firstName);
                    tmpStr = tmpStr.Replace("%LastName", lastName);
                    elMessage.Clear();
                    elMessage.SendKeys(tmpStr);
                    //elCancelButton.Click();
                    elSendButton.Click();
                    // System.Threading.Thread.Sleep(5000);
                    //        }
                    //        else if (SeleniumHelper.IsElementPresent(By.XPath(".//*[@id='session_key-login']")))
                    //        {
                    //            elLogin.Clear();
                    //        }
                    //        if (SeleniumHelper.IsElementPresent(By.XPath(".//*[@id='session_key-login']")))
                    //        {
                    //            linkedView.Login();
                    //        }
                    //        return false;
                    //    }
                    //    catch (Exception ex)
                    //    {
                    //        return false;
                    //    }
                    //}
                    //    return true;
                    //}
                }
                else
                {
                    return(false);
                }
            }
            catch (Exception ex)
            {
                return(false);
            }
            return(true);
        }
コード例 #4
0
ファイル: CrmHelper.cs プロジェクト: testgithub21/linkedinbot
        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;
        }
コード例 #5
0
        // Functionality needs to be changed as url is no longer exists, now functionality should be implemented through Connections       
        public void ProcessingAccepted()
        {
            IWebElement elLabel, elName;
            int i, j, countAccepted, k;
            int cntPage, allRecord;
            string tmpString;
            string userName;
            string urlStr;
            List<string> listUrl = new List<string>();

            crmView.SetSearchMode(0);
            urlStr = "https://www.linkedin.com/inbox/#sent?subFilter=invitation&keywords=&sortBy=";
            browser.LinkedInNavigateTo(urlStr);
            // //*[@id='message-list']/form/ol/li[10] Этикетка
            // //*[@id='message-list']/form/ol/li[3]/div/span[2] Надпись Accepted
            // /inbox/#sent?startRow=11&subFilter=invitation&keywords=&sortBy=
            j = 11;
            countAccepted = 0;
            cntPage = 0;
            allRecord = 0;
            listUrl.Clear();
            while (true)
            {
                k = 0;
                System.Threading.Thread.Sleep(5000);
                for (i = 1; i < 11; i++)
                {
                    tmpString = "//*[@id='message-list']/form/ol/li[" + i.ToString() + "]";

                    if (SeleniumHelper.IsElementPresent(By.XPath(tmpString)))
                    {
                        tmpString = "//*[@id='message-list']/form/ol/li[" + i.ToString() + "]/div/span[2]";
                        if (SeleniumHelper.IsElementPresent(By.XPath(tmpString)))
                        {
                            elLabel = SeleniumHelper.WaitForElement(By.XPath(tmpString));
                            if (elLabel.Text != "" && elLabel.Text.Contains("Accepted"))
                            {
                                elName = SeleniumHelper.WaitForElement(By.XPath("//*[@id='message-list']/form/ol/li[" + i.ToString() + "]/div/span[1]"));
                                userName = elName.Text;
                                userName = userName.Replace("To: ", "");
                                if (crmView.SearchContact(userName, "") == false)
                                {
                                    //elName.Click();
                                    browser.SetCurrentWindow(0);
                                    try
                                    {
                                        elName = SeleniumHelper.WaitForElement(By.XPath("//*[@id='message-list']/form/ol/li[" + i.ToString() + "]/div/div[2]/p/a"));
                                        //*[@id='message-list']/form/ol/li[2]/div/div[2]/p/a
                                        tmpString = elName.GetAttribute("href");
                                        browser.LinkedInNavigateTo(tmpString);
                                        System.Threading.Thread.Sleep(3000);
                                        //*[@id='content']/div/div[2]/p[2]/span[2]/span/strong/a
                                        // Получить ссылку на профиль пользователя для сохранени
                                        elName = SeleniumHelper.WaitForElement(By.XPath("//*[@id='content']/div/div[2]/p[2]/span[2]/span/strong/a"));
                                        tmpString = elName.GetAttribute("href");
                                        listUrl.Add(tmpString);
                                        //CreateAcceptedRecord(tmpString);

                                        System.Threading.Thread.Sleep(3000);
                                    }
                                    catch (Exception ex)
                                    {
                                        ;
                                    }
                                    browser.LinkedInNavigateTo(urlStr);
                                    System.Threading.Thread.Sleep(3000);
                                    allRecord++;
                                }
                                else
                                {
                                    if (SeleniumHelper.IsElementPresent(By.XPath("//*[@id='MassUpdate']/table/tbody/tr[3]/td[5]")))
                                    {
                                        elName = SeleniumHelper.WaitForElement(By.XPath("//*[@id='MassUpdate']/table/tbody/tr[3]/td[5]"));
                                        tmpString = elName.Text;
                                        listUrl.Add(tmpString);
                                        System.Threading.Thread.Sleep(3000);

                                    }
                                }
                                browser.SetCurrentWindow(0);
                                countAccepted++;
                                k++;
                            }
                        }
                    }
                }
                // Переход на следующую страницу
                j += 10;
                cntPage++;
                // Это последняя страница?
                if (cntPage == 35)
                    break;
                tmpString = "inbox/#sent?startRow=" + j.ToString() + "&subFilter=invitation&keywords=&sortBy=";
                urlStr = "https://www.linkedin.com/" + tmpString;
                browser.LinkedInNavigateTo(urlStr);
            }
            for (i = 0; i < listUrl.Count; i++)
            {
                CreateAcceptedRecord(listUrl[i]);
            }
            return;
        }
コード例 #6
0
        /*
         * Обработка информации запроса
         * 
         * 
         */
        public void ParseResultRequest()
        {
            int i, m;
            string pageUrl;
            string tmp;
            DataIn curData;


            List<string> pages = new List<string>();
            pages.Clear();
            ParseSearchInfoPage();
            for (i = 2; i < 11; i++)
            {
                pageUrl = "//*[@id='results-pagination']/ul/li[" + i.ToString() + "]/a";
                if (SeleniumHelper.IsElementPresent(By.XPath(pageUrl)) == true)
                {
                    var element = SeleniumHelper.WaitForElement(By.XPath(pageUrl));
                    tmp = element.GetAttribute("href");
                    // Добавить страницу для последующих поисков контакта
                    pages.Add(tmp);
                }
            }
            // Обрабатываем  следующие страницы для добавления
            for (i = 0; i < pages.Count; i++)
            {
                tmp = pages[i];
                browser.LinkedInNavigateTo(tmp);
                if (SeleniumHelper.IsElementPresent(By.Id("srp_container")) == true)
                {
                    ParseSearchInfoPage();
                    System.Threading.Thread.Sleep(5000);
                }
            }

            crmView.SetSearchMode(0);
            // Осуществить проход по страницам пользователей
            for (m = 0; m < data.Count; m++)
            {
                curData = data[m];
                if (crmView.SearchContact(curData.fullName, "") == true)
                {
                    // Такой контакт уже существует
                    continue;
                }
                else
                {
                    if (SendInvite(ref curData) == true)
                    {
                        crmView.CreateNewUserRecord(curData);
                        crmView.SearchContact("", "");
                        cntInvite--;
                        if (cntInvite < 0)
                        {
                            i = 0;
                            while (true)
                            {
                                System.Threading.Thread.Sleep(60000);
                                i++;
                            }
                        }
                    }
                }
            }

            return;
        }
コード例 #7
0
        /*
         *  Отсылка запроса на добавлениие нового пользователя
         * 
         *
         */
        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;
        }