Пример #1
0
        /*
         * Наколение контактов с текущей страницы
         * 
         */
        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;
        }
Пример #2
0
        // 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;
        }
Пример #3
0
        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;
        }
Пример #4
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;
        }